数据结构单链表.doc

数据结构单链表.doc

ID:53874916

大小:28.00 KB

页数:6页

时间:2020-04-10

数据结构单链表.doc_第1页
数据结构单链表.doc_第2页
数据结构单链表.doc_第3页
数据结构单链表.doc_第4页
数据结构单链表.doc_第5页
资源描述:

《数据结构单链表.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一单链表一、实验目的1、掌握用Vc++上机调试程序的基本方法;2、掌握单链表的建立、插入、删除以及相关操作。二、实验内容1、单链表的插入算法;2、单链表的删除算法;3、两个有序单链表合并成一个有序单链表的算法。三、实验要求1、学生用C++/C完成算法设计和程序设计并上机调试通过;2、撰写实验报告,提供实验测试数据和实验结果;3、分析算法,要求给出具体的算法分析结果,包括时间复杂度和空间复杂度,并简要给出算法设计小结和心得。四、实验准备1、复习C语言中指针的用法,特别是结构体的指针的用法;2、了解单链表的概念,单链表的定义方法;3、掌握线性表在

2、链式存储结构上实现基本操作:查找、插入、删除的算法;在实现这些算法的时候,要注意判断输入数据的合法性,除此之外还要注意以下内容:在实现查找的时候,首先要判断该单链表是否为空,其次要判断查找后的结果(查到时输出查到的数据,未查到时给出错误提示)。在实现插入的时候,由于是链式存储,它可以随机产生和回收存储空间,所以它不要判断线性表是否为满,但仍需判断要插入的位置是否合法,其次要注意插入的时候语句的顺序不可颠倒,否则出错。在实现删除的时候,首先要判断线性表是否为空,为空则不能删除;其次在删除后要回收空间。五、实验步骤1、编程实现建立一个单链表,并在此表

3、中插入一个元素和删除一个元素5(1)通过键盘读取元素建立单链表;(2)指定一个位置,在此位置之前插入一个新元素;(3)指定一个位置,删除此位置元素。2、两个有序单链表合并成一个有序单链表的算法。(1)通过键盘读取元素建立2个有序单链表;(2)将二两个有序单链表合并成一个有序单链表;(3)输出合并后的单链表。六、实验参考代码1、编程实现建立一个单链表,并在此表中插入一个元素和删除一个元素#include"stdio.h"#include"stdlib.h"#defineOK1#defineERROR0typedefintElemType;typed

4、efintStatus;typedefstructLnode{ElemTypedata;structLnode*next;}Lnode,*LinkList;//以下是建立单链表voidCreatList_L(LinkList&head){LinkListtail,p;intn,i;p=(Lnode*)malloc(sizeof(Lnode));head=tail=p;head->next=NULL;printf("Pleaseinputlengthtocreatalist:");scanf("%d",&n);printf("Pleaseinp

5、utagroupofvaluesofthelist:");for(i=1;i<=n;i++){p=(Lnode*)malloc(sizeof(Lnode));scanf("%d",&p->data);p->next=NULL;tail->next=p;tail=p;}printf("Alisthasbeencreatedsuccessfully!");}//以下是输出单链表voidOutputList_L(LinkListL){LinkListp=L->next;if(p==NULL){printf("Nolist");retur

6、n;}printf("Thelistis:");while(p){printf("%4d",p->data);p=p->next;}printf("");}//在第i个元素之前插入一个元素StatusListInsert_L(LinkListL,inti,ElemTypee){LinkListp,s;p=L;intj=0;while(p&&jnext;++j;}if(!p

7、

8、j>i-1)returnERROR;s=(LinkList)malloc(sizeof(Lnode));s->data=e;s->next=p-

9、>next;p->next=s;returnOK;}//删除第i个元素StatusListDelete_L(LinkListL,inti,ElemType&e){LinkListp,q;p=L;intj=0;while(p->next&&jnext;++j;}if(!(p->next)

10、

11、j>i-1)returnERROR;q=p->next;p->next=q->next;e=q->data;free(q);returnOK;}voidmain(){LinkListL;intchoice,i;ElemTypee;choic

12、e=1;printf("Weshouldcreatealistfirst!");CreatList_L(L);OutputList_L(

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

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

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