数据结构实验一.doc

数据结构实验一.doc

ID:35988713

大小:52.00 KB

页数:8页

时间:2019-04-29

数据结构实验一.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,L2,L3),功能是把有序顺序表L1和L2中的数据元素合并到L3中,要求把L3中的数据元素依然保持有序。并

3、设计一个主函数,验证该合并函数的正确性。程序代码:2—21(1)typedefstructNode{DataTypedata;structNode*next;}SLNode;voidListInitiate(SLNode**head){if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=NULL;}intListLength(SLNode*head){SLNode*p=head;intsize=0;while(p

4、->next!=NULL){p=p->next;size++;}returnsize;}intListInsert(SLNode*head,inti,DataTypex){SLNode*p,*q;intj;p=head;j=-1;while(p->next!=NULL&&jnext;j++;}if(j!=i-1){printf("insertwrongway!");return0;}if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit

5、(1);q->data=x;q->next=p->next;p->next=q;return1;}intListDelete(SLNode*head,inti,DataType*x){SLNode*p,*s;intj;p=head;j=-1;while(p->next!=NULL&&p->next->next!=NULL&&jnext;j++;}if(j!=i-1){printf("thedeletewrongdata!");return0;}s=p->next;*x=s->da

6、ta;p->next=p->next->next;free(s);return1;}intListGet(SLNode*head,inti,DataType*x){SLNode*p;intj;p=head;j=-1;while(p->next!=NULL&&jnext;j++;}if(j!=i){printf("getthewrongdata!");return0;}*x=p->data;return1;}voidDestroy(SLNode**head){SLNode*p,*p1;

7、p=*head;while(p!=NULL){p1=p;p=p->next;free(p1);}*head=NULL;}intListEmpty(SLNode*head){if(head->next==NULL)return0;elsereturn1;}(2)测试主函数#include#include#includetypedefintDataType;#include"SLNode.h"voidmain(void){SLNode*head;i

8、nti,x;ListInitiate(&head);for(i=0;i<10;i++){if(ListInsert(head,i,i+1)==0){printf("wrong");return;}}if(ListDelete(head,4,&x)==0){printf("wrong");return;}for(i=0;i

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

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

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