链表的基本操作-数据结构实验报告.doc

链表的基本操作-数据结构实验报告.doc

ID:59516025

大小:70.50 KB

页数:13页

时间:2020-11-05

链表的基本操作-数据结构实验报告.doc_第1页
链表的基本操作-数据结构实验报告.doc_第2页
链表的基本操作-数据结构实验报告.doc_第3页
链表的基本操作-数据结构实验报告.doc_第4页
链表的基本操作-数据结构实验报告.doc_第5页
资源描述:

《链表的基本操作-数据结构实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、大学数据结构实验报告课程名称数据结构实验第(四)次实验实验名称链表的基本操作学生姓名于歌专业班级学号实验成绩指导老师(签名)日期2018年10月01日一、实验目的1.学会定义单链表的结点类型,实现对单链表的一些基本操作和具体的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。2.掌握单链表基本操作及两个有序表归并、单链表逆置等操作的实现。二、实验要求1.预习C语言中结构体的定义与基本操作方法。2.对单链表的每个基本操作用单独的函数实现。3.编写完整程序完成下面的实验内容并上机运行。4.整理并上交实验报告。三、实验内容:1.编写程序完成单链表的下列基本操作

2、:(1)初始化单链表La(2)在La中插入一个新结点(3)删除La中的某一个结点(4)在La中查找某结点并返回其位置(5)打印输出La中的结点元素值(6)清空链表(7)销毁链表2.构造两个带有表头结点的有序单链表La、Lb,编写程序实现将La、Lb合并成一个有序单链表Lc。四、思考与提高:1.如果上面实验内容2中合并的表内不允许有重复的数据该如何操作?2.如何将一个带头结点的单链表La分解成两个同样结构的单链表Lb,Lc,使得Lb中只含La表中奇数结点,Lc中含有La表的偶数结点?五、实验设计1.编写程序完成单链表的下列基本操作:(1)初始化单链表LaLinkLi

3、stInitList(){inti,value,n;LinkListH=(LinkList)malloc(sizeof(LNode));LinkListP=H;P->next=NULL;do{printf("请输入链表的长度:");scanf("%d",&n);if(n<=0)printf("输入有误请重新输入!");}while(n<=0);printf("请输入各个元素:");for(i=0;idata

4、=value;P->next=NEW;NEW->next=NULL;P=NEW;}printf("链表建立成功!");returnH->next;}(2)在La中插入一个新结点LinkListInsertList(LinkListL,inti,ElemTypevalue){LinkListh,q,t=NewLNode(t,value);intx=0;h=q=L;if(i==1)t->next=h,h=t;else{while(x++next;t->next=q->next;q->next=t;}printf("插入成功!");retur

5、nh;}(3)删除La中的某一个结点LinkListDeleteList(LinkListL,inti){LinkListh,q,de;intx=0;h=q=L;intt;if(i==1)h=h->next;else{while(x++next;de=q->next;if(de->next==NULL)q->next=NULL;elseq->next=de->next;}printf("删除成功!");returnh;}(4)在La中查找某结点并返回其位置StatusLocateList(LinkListL,ElemTypevalue){L

6、inkListq=L;inti=0,t;while(q!=NULL){i++;if(q->data==value){printf("该结点在链表中的位置为第%d个",i);returnOK;}q=q->next;}printf("该链表中没有该结点!");returnERROR;}(5)打印输出La中的结点元素值StatusPrint(LinkListL){LinkListq=L;printf("该链表的每个元素为:");while(q!=NULL){printf("%8d",q->data);q=q->next;}printf("");retur

7、nOK;}(6)清空链表LinkListEmptyList(LinkListL){free(L->data);L->next=NULL;printf("清空成功!");returnL;}(7)销毁链表LinkListFreeList(LinkListL){printf("释放成功!");free(L);}(8)主函数intmain(){LinkListL=InitList();intn,i,j;Pr();scanf("%d",&n);while(n>0&&n<7){switch(n){case1:printf("请输入要插入的结点的值和插入的位置:");s

8、canf(

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

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

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