




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机程序设计 第8章链表与文件处理教师 杨振平E mail zpyang 2011 2012第2学期 链表概述链表中结点类型定义链表常见操作文件概述文件处理应用举例 授课内容 一 链表概述 链表是一种常见的重要的数据结构 它是动态进行存储分配的一种结构 它组织的数据在内存中不一定连续存放 通常用链表处理具有经常插入 删除等操作的应用问题 链表通常由同类型的多个数据元素构成 每个数据元素称为链表中的一个结点 结点类型常用结构体 或类 定义 一个结点除包含数据信息域外 还包含指针域 链表的逻辑结构链表的基本操作 创建 访问 插入 删除 二 链表中结点类型定义 例如 学生信息链表的结点类型structstu node stringNum stringName stringSex intAge stringClass stringTel stringEmail stu node next 三 链表常见操作 1 创建链表 1 带头结点的空链表头指针头结点stu node head head newstu node head next NULL 2 创建若干信息的链表 N 申请新结点 申请成功 Y 输入下一个信息 将新结点加到链尾 N 信息结束 Y 三 链表常见操作 续 创建学生信息链表intcreate stu node head stu node p q while true p newstu node if p NULL return 1 cout p Num p Name p Sex p Age p Class p Tel p Email if p Num 0 return1 if head next NULL p next NULL head next p elseq next p q p q指向链尾 三 链表常见操作 续 2 访问链表 p NULL N Y 访问p结点信息 p p next p head next 结束 访问学生信息链表voidprint stu node head stu node p head next while p NULL coutNum coutName coutSex coutAge coutClass coutTel coutEmail endl p p next 三 链表常见操作 续 3 插入结点 1 确定新结点的插入位置 假设为p在p之后插入新结点qq next p next p next q 在p之前插入新结点q先确定p的前驱结点 设为t将q插入到t之后 head p q 三 链表常见操作 续 例 在head链表中学号No之后插入新结点qvoidinsert stu node head stringNo stu node q 寻找学号为No的结点pstu node p find head No q next p next p next q stu node find stu node head stringNo stu node p head while p next NULL if p next Num No returnp next elsep p next returnp 三 链表常见操作 续 4 删除结点删除p结点 先确定p的前驱结点 设为t 执行以下操作 t next p next deletep head p 三 链表常见操作 续 例 在head链表中删除学号为No的结点intdelete stu node head stringNo stu node p head t if p next Num No t p next p next t hext deletet return1 寻找学号为No的前驱结点twhile p next NULL if p next NULL return 1 t p p p next t next p next deletep return1 intmain stu node head intm head newstu node head next NULL system cls while true cout endl cout 简单学生信息管理 endl cout endl cout 1 录入学生信息 endl cout 2 显示学生信息 endl cout 3 插入一个学生信息 endl cout 4 删除一个学生信息 endl cout 0 退出 endl cout endl cout 给出选择 0 4 cin m switch m case0 return0 case1 if create head 1 设计输入函数cout num2 cout p1 Num p1 Name p1 Sex p1 Age p1 Class p1 Tel p1 Email insert head num2 p1 break 设计插入函数 case4 stringnum1 cout num1 if Delete head num1 1 cout DeleteError 1 endl break 设计删除函数 default return0 四 文件处理 C 程序能够直接对磁盘文件进行输入或输出操作 程序设计步骤如下 包含头文件fstream定义文件类型变量 对象 打开文件读写文件关闭文件 定义文件变量 打开 关闭文件 读写文件 使用文件类型定义文件对象 例如 ifstreamfin 定义输入文件对象finofstreamfout 定义输出文件对象foutfstreamfio 定义输入和输出文件对象fio使用文件对象中的成员函数 打开关闭文件 例如fin open 文件名 打开用于输入的文件fout open 文件名 打开用于输出的文件fin close 关闭输入的文件读文件 fin 变量 变量 写文件 fout 表达式 五 文件操作应用举例 例14 4在当前工程中上创建文件名为 AAA 的文本文件 并写入以下数据 C 89 5English93 5Maths87 程序编写如下 include include 包含文件流类头文件intmain ofstreamout 定义输出流对象out open AAA 打开文件if out 文件打开失败 out值为假 cout CannotopenAAAfile n return1 out C 89 5 endl out English 93 5 endl out Maths 87 endl out close 关闭文件return0 Ofstreamout AAA 例14 5读取文件AAA ifstreamin AAA if in cout course grade cout course grade n in close 运行结果 举例 显示一个文本文件的内容 显示一个文本文件的内容 文件名从键盘输入 include includeusingnamespacestd intmain charfilename 20 ch ifstreamin cout filename in open filename 显示一个文本文件的内容 续 if in cout 文件没有打开 return1 in get ch 包括空格字符while in 当没有遇到文件结束标志时 cout ch in get ch 包括空格字符 cout endl in close return0 拷贝一个图片文件 文件名 3 jpg 拷贝一个图片文件 文件名从键盘输入 include includeusingnamespacestd intmain charfilename1 20 filename2 20 ch ifstreamin ofstreamout cout filename1 cout filename2 in open filename1 ios binary 以二进制方式打开out open filename2 ios binary 以二进制方式打开 拷贝一个图片文件程序代码 if in out cout 文件没有打开 return1 in get ch 包括空格字符while in 当没有遇到文件结束标志时 out ch in get ch 包括空格字符 cout endl cout 拷贝已完成 endl in close out close return0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生物医药创新药研发技术与医药市场前景研究报告
- 2025年化妆品行业个性化定制化妆品市场前景报告
- 2025年机器人行业人工智能机器人应用前景研究报告
- 2025年绿色环保行业可降解材料应用前景分析报告
- 2025年汽车行业智能驾驶技术前景展望报告
- 商场人员管理安全培训课件
- 天津市2025天津市机关后勤事务服务中心分支机构天津市迎宾馆招聘8人笔试历年参考题库附带答案详解
- 南开区2025天津南开大学继续教育学院招用劳务派遣制用工人员1人笔试历年参考题库附带答案详解
- 内蒙古2025内蒙古兴安盟事业单位专项人才引进121人笔试历年参考题库附带答案详解
- 乐山市2025上半年四川乐山市五通桥区赴成都中医药大学考核招聘事业单位人员27人公笔试历年参考题库附带答案详解
- 2025国庆节前安全教育培训
- 2025年国家电网公司招聘面试模拟题集与答案解析
- 农业农村部在京事业单位招聘考试真题2024
- 农村电商公共服务体系的建设与完善-以资阳市雁江区为例
- 校园招聘服务协议书范本
- 语音厅运营基础知识培训
- 汽车装饰用品购销合同(标准版)
- 停车场保安安全知识培训课件
- 富血小板血浆的临床应用幻灯片课件
- 大数据驱动下的档案信息管理系统研发与应用
- 盆腔炎性疾病护理查房
评论
0/150
提交评论