下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告课程名称数据结构实验名称实验类型验证型实验实验地点 计304机房 实验日期2011.10.28指导教师魁专业计算机科学与技术班级学号强石油化工大学计算机与通信工程学院数据结构实验报告评分表项目要求分数有无项目(J)得分预习报告(30 分)实验目的明确5实验容理解透彻5实验方案设计完整合理程序总体框架设计完整10完成相关辅助代码5测试方案合理5实验过程(30 分)发现问题5问题的分析15问题的解决方法10实验报告(20 分)容翔实无缺漏5如实记录实验过程10撰写规整5实验总结(10 分)实验结果的分析5按照结果对原实验方案的改进意见5实验体会(10 分)实验的收获5实验容的发散考虑5总分
2、实验一单链表操作验证一. 实验目的(1) 掌握线性表的存储结构;(2) 验证单链表及其基本操作的实现;(3) 进一步掌握数据结构及算法的程序实现的基本方法。二. 实验容(1) 用头插法(或尾插法)建立帶头结点的单链表;(2) 对巳建立的单链表实现插人、删除、查找等基本操作。三. 实验步骤1. 需求分析本演示程序用VC+编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元 素在单链表中的位置。 输入的形式和输入值的围:插入元素时需要输入插入的位置和元素的值;删除元素时输 入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都長整数。 输出的形式:在所有三种操作中都显示操作
3、是否正确以及操作后单钱表的容。其中删除 操作后显示删除的元素的值,查找操作后显示要查找元素的位置。 程序所能达到的功能:完成单链表的生成(通过插入操作)、插入、删除、查找操作。 测试数据:(1) 生成单链表1 23 2 34 3 45 4 56(2) 查找1位置为23(3) 删除数据2(4) 插入2 67(5) 输出数据 1 23 2 67 3 45 4 562. 源程序如下:#include#include #include#include ttdefine NULL 0struct dataint num;int d;struct data 岩next;struct data head,*
4、p,*tail;int len,i;struct data *creat()int n;len=sizeof( struct data);printf(len=w);scanf(%dt&n);printf (输入创建单链表:n);head=(struct data*)malloc(len);printf(-数据位置和数据:n);scanf (%d%d11 ,&head-num,&head-d); tail=head;for(i=2;inum,&p-d);tail-next=p;tail=p;ta订-next二NULL;return(head);void output(struct data *
5、head)int j;struct data *pO,*pl;p=head;for(j=0;jlen;j+)for(i=0;inext; if(p-numpO-num) pl=p;p=pO;pO=pl;for(p=head;p!=NULL;p=p-next)printf(%d: %dnw,p-numtp-d);struct data *ins(struct data *head)struct data *pOf *pL*p2;struct data *ins;printf(ff输入插入的位置和数据:w);ins= (struct data )malloc(len); scanf(n%d%d,&
6、ins-num,&ins-d); pl=head;pO=ins;if (head=NULL)head=pO;pO-next=NULL;elsewhile(pO-numpl-num)&(pl-next!=NULL)(p2=pl;pl=pl-next;if (pO-numnum)if (head=pl) head=pO; else p2-next=p0;pO-next=pl;else (pl-next=pO;pO-next=NULL;for (p=head;p!=NULL;p=p-next)printf (w%d: %dnjp-num,p-d);return(head);struct data d
7、el (struct data *head)struct data *pl*p2;int num;printf(-输入删除位置:);scanf (w%dt&num);if(head=NULL)printf (链表空!n*) ;goto end; pl=head;while (pl-num!=num&pl-next!=NULL)p2=pl;pl=pl-next;if (pl-num=num)if(pl=head) head=pl-next;else p2-next=pl-next;else printf (没有发现%d!nRfnum); for (p=head;p!=NULL;p=p-next)
8、 printf(%d:p-num,p-d);end:return (head);void find (struct data *head)struct data *pl;int num;printf (输入查找位置:);scanf (%d&num);if(head=NULL)printf(链表空!nw);goto end;)pl=head;while(pl-num!=num&pl-next!=NULL)pl=pl-next;if (pl-num=num)printf C这数据信息十);printf(R%d: %dnw,pl-num,pl-d);else printf (%d 没有发现!nR ,
9、num);end:;void mainOstruct data *head;int select;head=NULL;whiled)printfCl:创建2:插入3:删除4:查找5:输出6:退出十);printf(please input select:);scanf(%d,&select);switch(select)case 1: head=创建 0; break;case 2:head=插入(head) ; break;case 3:head=删除(head) ; break;case 4:查找 d(head) ; break;case 5 :输出(head) ; break;case 6:退出(0);3. 使用说明:1:创建2:插入3:删除4:查找5:输出6:退出Select:在select后输入数字选择执行不同的功能。要求首先输入足够多的插入元素,才 可以进行其他的操作。每执行一次功能,就会显示执行的结果(正确或错误)以及执行后 单链表的容。选择1.创建一个单链表。选择2.选择插入的位置和和数据。选择3.输入要删除的位置,程序将删除该位置的数据。选择4.输入查找到位置,程序将显示该位置的数据。选择5.程序将自动输出经过变化后的单链表。四、实验总结(结果分析和体会)1. 我又进一步巩固了 C语言的基础,尤其長指针那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球农业张力计行业调研及趋势分析报告
- 2025-2030全球便携式激光测风雷达行业调研及趋势分析报告
- 2025-2030全球军用聚脲防护涂料行业调研及趋势分析报告
- 2025-2030全球室温固化环氧胶行业调研及趋势分析报告
- 2025年全球及中国战术靶标系统行业头部企业市场占有率及排名调研报告
- 硅矿开采合同书
- 股票期权协议书合同协议
- 个人房屋买卖合同协议书模板
- 铁矿设备买卖合同
- 2025隧道施工合同
- 中职安全管理方案
- 百词斩托福词汇excel版本
- 高考写作指导常见议论文论证方法知识梳理与举例解析课件27张
- (完整word版)高中英语3500词汇表
- 玻璃反应釜安全操作及保养规程
- 高中英语新课标词汇表(附词组)
- 2023年心理咨询师之心理咨询师基础知识考试题库附完整答案【有一套】
- 证券公司信用风险和操作风险管理理论和实践中金公司
- 一级建造师继续教育最全题库及答案(新)
- 2022年高考湖南卷生物试题(含答案解析)
- GB/T 20909-2007钢门窗
评论
0/150
提交评论