版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 单链表操作验证一、实验目的1理解数据结构中带头结点单链表的定义和逻辑图表示方法。2掌握单链表中结点结构的C+描述。3熟练掌握单链表的插入、删除和查询算法的设计与C+实现。4熟练掌握简单的演示菜单与人机交互设计方法。二、实验内容1 编制一个演示单链表插入、删除、查找等操作的程序。三、实验步骤1需求分析本演示程序用VC+编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都是整数。 输出的形式:在所有三种操作中都显示
2、操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。 程序所能达到的功能:完成单链表的生成(通过插入操作)、插入、删除、查找操作。 测试数据:A 建立操作中依次输入1,2,3,4,5,生成一个单链表B插入操作中依次输入6,插入单链表C查找操作中依次输入2,返回这,1个元素在单链表中的位 D. 删除操作中依次输入1,删除位于1的元素 2概要设计1)基本操作:struct stu *creat()操作结果:构造一单链表Struct stu *ins(struct stu *head)初始条件:单链表已存在操作结果:插入元素Struct stu *d
3、el(struct stu *head)初始条件:单链表已存在操作结果:删除元素Void find(struct stu *head)初始条件:单链表L已存在操作结果:查找元素Void output(struct stu *head) 初始条件:单链表L已存在操作结果:输出元素 Void main() 主函数2)本程序包含6个函数: 主函数main()显示单链表内容函数 output()建立元素函数 creat()插入元素函数ins()删除元素函数del()查找元素函数find()主函数控制五个函数: outputcreatinsdelfindmain 3详细设计实现概要设计中定义的所有的数据
4、类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。1) 结点类型和指针类型 struct stu int num; char name20 float Chinese,maths,English;struct stu *next;2) 单链表的基本操作Void output(struct stu *head)(伪码算法)Struct stu *creat()(伪码算法)Struct stu *ins(struct stu *head)(伪码算法)Struct stu *del(struct stu *head)(伪码算法)Void find(struct stu *head
5、)(伪码算法)Void main()(伪码算法) 4程序源码 #include#include#include#define NULL 0#define LEN sizeof(struct stu)struct stuint num;char name20; float Chinese,maths,English; struct stu *next;int n;void output(struct stu *head)struct stu *p; p=head;printf(学号t姓名t语文t数学t英语tn); for(p=head;p!=NULL;p=p-next) printf(%dt%s
6、t%.1ft%.1ft%.1fn,p-num,p-name,p-Chinese,p-maths,p-English);struct stu *creat() struct stu *head;struct stu *p1,*p2; n=0; printf(学号,姓名,语文,数学,英语:n); printf(输入 0 0 0 0 0 停止!n); p1=p2=(struct stu*)malloc(LEN); scanf(%d%s%f%f%f,&p1-num,p1-name,&p1-Chinese,&p1-maths,&p1-English); head=NULL;while(p1-num!=0
7、)n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1; p1=(struct stu*)malloc(LEN); scanf(%d%s%f%f%f,&p1-num,p1-name,&p1-Chinese,&p1-maths,&p1-English);p2-next=NULL; return(head);struct stu *ins(struct stu *head)struct stu *p0,*p1,*p2; printf(请输入插入的学生信息:n); p1=head; p0=creat();if(head=NULL)head=p0;p0-next=NUL
8、L;elsewhile(p0-nump1-num)&(p1-next!=NULL)p2=p1; p1=p1-next;if(p0-numnum)if(head=p1) head=p0;else p2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=NULL;n=n+1; return(head);struct stu *del(struct stu *head)struct stu *p1,*p2; int num;if(head=NULL)printf(n链表为空!n);elsep1=head; printf(请输入所需删除号码:n); scanf(%d,
9、&num); while(num!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;if(num=p1-num)if(p1=head) head=p1-next; elsep2-next=p1-next; printf(删除:%dn,num); n=n-1;elseprintf(对不起,%d不在链表中! n,num);return(head);void find(struct stu *head)struct stu *p1; int num; printf(请输入所需查找号码:n); scanf(%d,&num);if(head=NULL)printf(n链表为空
10、!n);elsep1=head; while(num!=p1-num&p1-next!=NULL)p1=p1-next;if(num=p1-num)printf(学号:%d 姓名:%s 语文:%.1f 数学:%.1f 英语:%.1fn,p1-num,p1-name,p1-Chinese,p1-maths,p1-English);elseprintf(对不起,%d不在链表中!n,num);void main()struct stu *head; int select; while(1) printf(1.建立 2.插入 3.删除 4.查找 5.输出 6.退出 n); printf(请输入操作序号
11、:n); scanf(%d,&select); switch(select) case 1: head=creat();break; case 2: head=ins(head);break; case 3: head=del(head);break; case 4: find(head);break; case 5: output(head);break; case 6: exit(0); 5调试分析在往电脑中输入程序时,由于马虎,有的落了标点符号,有的落了或写错了字母,有的语句也出现了错误,终于将它们一一修正过来。6使用说明程序名为LinkList.exe,运行环境为Visual C+。程序执行后显示1.建立 2.插入 3.删除 4.查找 5.输出 6.退出请输入操作序号: 然后输入数字选择执行不同的功能。要求首先输入足够多的插入元素,才可以进行其他的操作。每执行一次功能,就会显示执行的结果(正确或错误)以及执行后单链表的内容。选择1:显示“学号,姓名,语文,数学,英语:输入 0 0 0 0 0 停止!”要求输入足够多的元素。选择2:显示“请输入插入的学生信息: ”要求输入要插入的位置和元素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年农民专业合作社股权转让及品牌授权合作协议2篇
- 2024年版:股东之间股权转让协议书
- 采购工作总结与计划9篇
- 一年级上册音乐教学计划三篇
- 高三教学工作计划4篇
- 样品买卖合同
- 将优 质 服务进行到底
- 2025年专用级次磷酸钠项目发展计划
- 全国独家分销合同(2篇)
- 商业租房协议范本
- 2023年1月广东省自考00634广告策划试题及答案含解析
- 河南省洛阳市2023-2024学年高二上学期期末考试英语试题(解析版)
- 超声检查医疗纠纷的防范培训课件
- 采购管理的流程与原则
- 2022-2023学年山东省东营市东营区七年级(上)期末历史试卷(五四学制)(附答案详解)
- 《城市道路工程设计规范》宣贯课件
- 稻盛和夫的实学经营与会计
- 视频监控维保项目投标方案(技术标)
- 椎管内肿瘤围手术期护理课件
- 麻醉科主任述职报告
- PDCA降低护士针刺伤发生率
评论
0/150
提交评论