


已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机学院计算机系实验报告课程名称: 数据结构年级:2011实验成绩:指导教师: 黄襄念姓名:abraham 实验教室:6A-412实验名称:单链表的建立/查找/插入/删除学号: 实验日期:2012/12/16实验序号:实验1实验时间:6:409:50实验学时:4撰写说明:填写上面相关栏目,须作相应修改。仔细阅读:最后“六、提交文档要求”有关说明。一、 实验目的1.熟悉掌握链表的创建、链表的常用算法:如查找节点,删除节点,插入节点等等。二、实验环境1. 操作系统:Windows XP2. 开发软件:VC+6.0三、实验内容l 程序功能本程序完成了以下功能:1. 可以逐个添加英文字到链中。2. 可以删除链中的任意一元素而保持其他元素整体不变。3. 可以查找链表中的任意一个元素,只要输入该元素在链表中的位置,就可以查找到该元素。4. 可以在该链表中插入任意一个元素不改变整体的顺序,输入你要插入的位置即可。l 数据结构本程序中使用的数据结构(若有多个,逐个说明):1. 它的优缺点1) 能将物理地址散乱的链接在一起,更好的利用空间,可以动态的申请空间,如使用数组未必能申请到连续的空间但是用链表就可以解决这个问题。2) 能快速的删除节点,和增添节点。2. 逻辑结构图开始创建链表插入节点删除节点查找节点结束 3. 存储结构图 Head mNumNextNumNext 4. 存储结构的C/C+ 语言描述typedef struct node char data; struct node *next;link;l 算法描述(结合流程图或伪代码描述算法,若无可略)本程序中采用的算法(若有多个,逐个说明)1. 算法名称:创建链表 2. 算法原理或思想通过申请一个结构体指针,在用结果体指针申请一个空间,在输入信息后用前一个节点的Next指针将增加的结点与前面的结点链接,如此重复操作,就形成一个链表。3. 算法特点(优缺点,与可选或同类算法作对比)与数组相比较,是不连续的,它能随意的添加结点你需要多少就添加多少不会浪费多余的空间也不用提前去预测需要多少空间而其他的要考虑通用性,就必须申请较大的空间,而造成空间的浪费。l 程序说明1. 系统流程图(各个函数或类的调用流程图) MainCreate(head)Deleted(head)Find(head)Ins(head)退出2、程序模块(类或函数)代码:包括注释说明、模块功能、I/O参数等1) 创建链表模块:将链表创建录入数据。typedef struct node char data; struct node *next;link;link * get(link *m, int i) link *p;int j=0; p=m; while(ji) (p-next!=NULL) p=p-next;j+; if(j=i) return p; else return NULL;2) 删除模块:将链表中不需要的节点数据删除。link * del(link *m, int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout输入有误endl; else s=p-next; p-next=s-next; free(s); return m;3) 查找模块:查找你想要的信息。link * find(link *m, char ch) link *p; int i=0; int j=0; p=m; while(p!=NULL) i+; if(p-data!=ch) p=p-next; else cout您查找的数据在第i-1个位置.endl; j=1;p=p-next; if(j!=1) cout您查找的数据不在线性表中.endl; return m;4) 添加模块:添加你还需要添加的信息到链表中。link * ins (link *m, char ch,int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout输入有误endl; else s=(link *)malloc(sizeof(link); s-data=ch; s-next=p-next; p-next=s; return m;5)打印模块:打印出信息。link * print(link *m) int i,k; char ch; link *p,*q; cout当前线性表为:endl; p=m;p=p-next; if(m!=NULL) do coutp-data ; p=p-next; while(p!=NULL);四、调试与运行1. 程序调试调试:程序开发过程不可能没有BUG,你用了哪些手段或方法发现并改正错误。本程序开发过程中,采用的调试方法或手段如下:1) 方法: 输出一些连表中的数据,看能不能正常显示,调试数据是否正确的录入了。2. 运行结果(贴图,JPG格式) 本次实验多个功能需分别截图,逐个说明。运行结果图1 运行结果图2运行结果图3五、实验总结1. 结果分析:本程序完成了对链表的创建和插入、删除、查找功能,但是还没有对字符串进行排序,2. 心得体会:通过这个实验让我掌握了了链表,指针等知识六、源代码#include iostreamusing namespace std;typedef struct node char data; struct node *next;link;link * get(link *m, int i) link *p;int j=0; p=m; while(ji) (p-next!=NULL) p=p-next;j+; if(j=i) return p; else return NULL;link * ins (link *m, char ch,int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout输入有误endl; else s=(link *)malloc(sizeof(link); s-data=ch; s-next=p-next; p-next=s; return m;link * find(link *m, char ch) link *p; int i=0; int j=0; p=m; while(p!=NULL) i+; if(p-data!=ch) p=p-next; else cout您查找的数据在第i-1个位置.endl; j=1;p=p-next; if(j!=1) cout您查找的数据不在线性表中.endl; return m;link * del(link *m, int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout输入有误endl; else s=p-next; p-next=s-next; free(s); return m;link * print(link *m) int i,k; char ch; link *p,*q; cout当前线性表为:endl; p=m;p=p-next; if(m!=NULL) do coutp-data ; p=p-next; while(p!=NULL); coutendl; cout请选择您要的操作:; cout 1、插入; cout 2、查找; cout 3、删除; cout 0、退出; coutendl; cink; if(k=1) cout请输入您要插入的数据值:; cinch; cout请输入您要插入的位置:; cini; p=ins(m,ch,i); q=print(m); else if(k=2) cout请输入您要查找的数据值:; cinch; p=find(m,ch); q=print(m); else if(k=3) cout请输入您要删除的数据的位置:; cini; p=del(m,i); q=print(m); else if(k=0) ; else cout输入错误!endl; q=print(m); return m;int main() cout请输入一串单字符数据,以*结束!endl; char ch; link *r,*p,*q,*m; m=(l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成人培训通知解读
- 小红书运营必须知道规则
- 2024北京东城区四年级(下)期末语文试题及答案
- 立秋节气与媒体融合
- 2025标准买卖合同协议范本
- 2025深圳经济特区购房合同样本
- 品味梦幻创业计划书完成版
- 谷雨节气的特点和风俗
- 《颈椎穿刺的护理》课件
- 《高效能课件构建指南》教程
- (四调)武汉市2025届高中毕业生四月调研考试 物理试卷(含答案)
- 婴幼儿舒适睡眠环境打造试题及答案
- 2025年育婴师考试精神与试题及答案
- 2025年南阳科技职业学院单招综合素质考试题库及答案1套
- CACA小细胞肺癌诊治指南(2025版)解读
- 双休背后:从“要我学”到“我要学”的转变-高三家长会
- 耳鼻喉安全教育
- 2025-2030中国锗行业发展现状及发展趋势与投资风险研究报告
- 2025年福建省能源石化集团有限责任公司招聘笔试参考题库含答案解析
- 浙江首考2025年1月普通高等学校招生全国统一考试 历史 含解析
- 2025中国煤炭地质总局招聘784人笔试参考题库附带答案详解
评论
0/150
提交评论