创建链表和链表操作实验报告.doc

创建链表和链表操作实验报告.doc

ID:58219356

大小:615.00 KB

页数:9页

时间:2020-04-28

创建链表和链表操作实验报告.doc_第1页
创建链表和链表操作实验报告.doc_第2页
创建链表和链表操作实验报告.doc_第3页
创建链表和链表操作实验报告.doc_第4页
创建链表和链表操作实验报告.doc_第5页
资源描述:

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

1、数据结构实验报告报告名称创建链表和链表操作专业网络工程班级1001学号9姓名张剑指导教师陈淑红李珍辉黄哲2012年5月4日一、实验目的:掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算。二、实验内容与基本要求:实验内容:1.创建单链表2.在链表上进行插入、删除操作;3.设计一个程序,用两个单链表分别表示两个集合,并求出这两个集合的并集。实验要求:1.在上机前写出全部源程序;2.能在机器上正确运行程序;3.用户界面友好;三、概要设计:1.单链表的存储结构:teypedefstructLNode{ElemTypedate;structLNond*ne

2、xt;}LNode*LinkList;2.单链表的插入操作:StatusListTnsert-L(LinkLIst&L,inti,ElemTypee){//再带头结点的单链线性表L中的第i个位置之前插入元素eP=l;j=0;While(p&&jnext;++j;}//寻找第i-1个结点if(!p

3、

4、j>i-1)returnERROR;//i小小于1或者大于表长+1s=(LinkList)malloc(sizeof(LNode));//生成新结点s->date=e;s->next=p->next;//插入L中p->next=s;returnok;}//ListTnsert

5、L3.单链表的删除操作:StatusListDelete-L(LinkLIst&L,inti,ElemType&e){//在带头结点单链线性表L中,删除低i个元素,并由e返回其值p=l;j=0;while(p->next&&jnext;++j;}if(!(p->next)

6、

7、j>i-1)returnERROR;//删除位置不合理q=p->next;p->next=q->next;//删除并释放结点e=q->datefree(q);returnOK;}//ListDelete-L4.链表的合并操作:voidMergeList-L(Lin

8、kList&La,LinkList&Lb,LinkList&Lc){//已知单链表La和Lb的元素值//合并单链表La和Lb,得到新的单链表Lcpa=La->next;pb=Lb->next;lc=pc=La;//用La的头结点作为Lc的头结点while(pa&&pb){if(pa->date<=pb->date){pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next;}}Pc->next=pa?pa:pb;//插入剩余段free(Lb);//释放Lb头结点}//MergeList-L四、详细设计:#include

9、#include#include#includetypedefintstatus;typedefcharElemType;typedefstructLnode//定义链表结点类型{ElemTypedata;structLnode*next;}Lnode,*Linklist;statusinitlist(Linklist*L){//单链表的初始化*L=(Lnode*)malloc(sizeof(Lnode));//创建头结点(*L)->next=NULL;return1;}statusCreatelist(Linkl

10、istL){//创建自己规定长度的单链表Lnode*p,*q;inti,j=1,n;ElemTypem,M;q=L;printf("请输入你要输入单链中元素的个数");scanf("%d",&n);scanf("%c",&m);//回车缓冲区for(i=n;i>0;i--){p=(Lnode*)malloc(sizeof(Lnode));printf("请输入%2.1d个元素:",j);scanf("%ld",&M);scanf("%c",&m);//回车缓冲区p->data=M;p->next=q->next;q->next=p;q=p;j++;}return1;}statusList

11、insert(LinklistL,inti,ElemTypee){//向单链表指定位置插入一个元素intj=0;Lnode*p=L,*s;while(p&&jnext;++j;}if(!p

12、

13、j>i-1){printf("输入错误!");return0;}s=(Lnode*)malloc(sizeof(Lnode));s->data=e;s->next=p->next;p->next

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

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

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