数据结构线性表实验报告.doc

数据结构线性表实验报告.doc

ID:55411427

大小:42.50 KB

页数:8页

时间:2020-05-12

数据结构线性表实验报告.doc_第1页
数据结构线性表实验报告.doc_第2页
数据结构线性表实验报告.doc_第3页
数据结构线性表实验报告.doc_第4页
数据结构线性表实验报告.doc_第5页
资源描述:

《数据结构线性表实验报告.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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。