欢迎来到天天文库
浏览记录
ID:55411427
大小:42.50 KB
页数:8页
时间:2020-05-12
《数据结构线性表实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验报告课程数据结构实验名称实验一线性表学号姓名实验日期:实验一线性表实验目的:1.理解线性表的逻辑结构特性;2.熟练掌握线性表的顺序存储结构的描述方法,以及在该存储结构下的基本操作;并能灵活运用;3.熟练掌握线性表的链表存储结构的描述方法,以及在该存储结构下的基本操作;并能灵活运用;4.掌握双向链表和循环链表的的描述方法,以及在该存储结构下的基本操作。实验原理:线性表顺序存储结构下的基本算法;线性表链式存储结构下的基本算法;实验内容:2-21设计单循环链表,要求:(1) 单循环链表抽象数据
2、类型包括初始化操作、求数据元素个数操作、插入操作、删除操作、取消数据元素操作和判非空操作。(2) 设计一个测试主函数,实际运行验证所设计单循环链表的正确性。2-22.设计一个有序顺序表,要求:(1) 有序顺序表的操作集合有如下操作:初始化、求数据元素个数、插入、删除和取数据元素。有序顺序表与顺序表的主要区别是:有序顺序表中的数据元素按数据元素值非递减有序。(2) 设计一个测试主函数,实际运行验证所设计有序顺序表的正确性。(3) 设计合并函数ListMerge(L1,L
3、2,L3),功能是把有序顺序表L1和L2中的数据元素合并到L3,要求L3中的数据元素依然保持有序。并设计一个主函数,验证该合并函数的正确性。程序代码:2-21(1)头文件LinList.h如下:typedefstructnode{DataTypedata;structnode*next;}SLNode;/*(1)初始化ListInitiate(SLNode**head)*/voidListInitiate(SLNode**head){/*如果有内存空间,申请头结点空间并使头指针head指向头结点*/
4、if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=NULL;/*置结束标记NULL*/}/*(2)求当前数据元素个数ListLength(SLNode*head)*/intListLength(SLNode*head){SLNode*p=head;intsize=0;while(p->next!=head){p=p->next;size++;}returnsize;}/*(3)插入ListInsert(SLN
5、ode*head,inti,DataTypex)*//*在带头结点的单链表的第i(0<=i<=size)个结点前*//*插入一个存放数据元素x的结点。插入成功时返回1,失败返回0*/intListInsert(SLNode*head,inti,DataTypex){SLNode*p,*q;intj;p=head;j=-1;while(p->next!=head&&jnext;j++;}if(j!=i-1){printf("Theinserte
6、dpositioniserror!");return0;}/*生成新结点由指针q指示*/if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);q->data=x;q->next=p->next;p->next=q;return1;}/*(4)删除ListDelete(SLNode*head,inti,DataType*x)*//*删除带头结点的单链表head的第i(0<=i<=size)个结点前*//*被删除结点的数据元素域由x带回。删除成功时返回
7、1,失败返回0*/intListDelete(SLNode*head,inti,DataType*x){SLNode*p,*s;intj;p=head;j=-1;while(p->next!=head&&p->next->next!=head&&jnext;j++;}if(j!=i-1){printf("Thedeletedpositionofparameteriserror!");return0;}s=p->next;/*指针s指指向ai结
8、点*/*x=s->data;p->next=p->next->next;/*删除*/free(s);/*释放指针s所指结点的内存空间*/return1;}/*(5)取数据元素ListGet(SLNode*head,inti,DataType*x)*/intListGet(SLNode*head,inti,DataType*x){SLNode*p;intj;p=head;j=-1;while(p->next!=head&&jnext;j++;}if(j
此文档下载收益归作者所有