欢迎来到天天文库
浏览记录
ID:57849516
大小:113.50 KB
页数:13页
时间:2020-04-01
《线性表操作实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、忻州师范学院计算机科学与技术系实验报告(第六组)组长:梁启超组员:晋丹丹张艳华马军刘雪梅孙钰林刘涛忻州师范学院计算机科学与技术系实验报告实验名称线性表的操作专业班级计本1504班姓名梁启超学号201508112036指导教师成绩日期2016/9/26组员分工晋丹丹(头插法构造单链表),张艳华(尾插法构造单链表;)马军(遍历单链表;)刘雪梅(按位序查找单链表;)孙钰林(按值查找单链表;)刘涛(向单链表中插入元素;)一、实验目的熟练掌握线性表的类型定义方法、存储方法及其基本运算(元素的插入、删除等)的实现方法,培养综合运用所学知识,根据具体问题进行数据结构设计和算法设计
2、的能力。二、实验内容用链表建立线性表,并进行线性表相关操作。要求:要有良好的人机界面,有菜单形式实现,具备头插法、尾插法建链表、插入、删除、显示、以及按值与位序查找的功能。三、实验要求1.在问题分析的基础上选择合适的存储结构,进行算法设计,编制程序并上机调试成功。2.按要求完成实验报告。3.保存和打印出程序的运行结果,并结合程序进行分析。四、实验步骤1.需求分析本演示程序用C语言编写,要有良好的人机界面,实现线性表操作的基本功能:头插法、尾插法建链表、插入、删除、显示、以及按值与位序查找的功能。1.输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删
3、除元素时输入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都是整数。2.输出的形式:在所有三种操作中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。3.程序所能达到的功能:完成单链表的生成、插入、删除、查找操作4.测试数据2.概要设计1.为了实现上述程序功能,需要定义单链表的抽象数据类型:(1)createlist_l初始化:头插法构造单链表;(2)createlist_l2初始化:尾插法构造单链表;两种二选一;(2)listinsert_l操作结果:向单链表中插入元素;(3)listd
4、elete_l操作结果:删除单链表中的元素;(4)printlist_l操作结果:遍历单链表;(5)getelem_l操作结果:按位序查找单链表;(6)locateElem_l操作结果按值查找单链表;各函数间关系如下:main()linklist//单链表结构scan()createlist_llistinsert_llistdelete_lprintlist_lgetelem_llocateElem_lcreatelist_l23.详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。单链表定义typedefs
5、tructlnode{intdata;structlnode*next;}lnode,*linklist;单链表的生成、插入、删除、查找操作linklistcreatelist_l(intn){inti;linklistl,p;l=(linklist)malloc(sizeof(lnode));l->next=NULL;printf("pleaseinputthedataof:");for(i=n;i>0;--i){p=(linklist)malloc(sizeof(lnode));scanf("%d",&p->data);p->next=l->next;l->ne
6、xt=p;}returnl;}linklistcreatelist_l2(intn){inti;linklistl,p,r;l=(linklist)malloc(sizeof(lnode));l->next=NULL;r=l;printf("pleaseinputthedataof:");for(i=1;i<=n;i++){p=(linklist)malloc(sizeof(lnode));scanf("%d",&p->data);p->next=NULL;r->next=p;r=p;}returnl;}linklistlistinsert_l(linklistl,
7、inti,inte){intj;linklistp,s;p=l;j=0;while(p&&jnext;++j;}if(!p
8、
9、j>i-1)printf("dataisnotlefal!");s=(linklist)malloc(sizeof(lnode));s->data=e;s->next=p->next;p->next=s;returnl;}linklistlistdelete_l(linklistl,inti,int&e){intj;linklistp,q;p=l;j=0;while(p->next&&jnext
此文档下载收益归作者所有