2019创建链表和链表操作实验报告

2019创建链表和链表操作实验报告

ID:41107611

大小:20.85 KB

页数:13页

时间:2019-08-16

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

《2019创建链表和链表操作实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、创建链表和链表操作实验报告  数据结构实验报告  报告名称  创建链表和链表操作  专  业  网络工程  班  级  1001  学  号  20XX03120XX9  姓  名  张剑  指导教师  陈淑红李珍辉黄哲    20XX年5月4日  一、实验目的:  掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算。  二、实验内容与基本要求:  实验内容:  1.创建单链表  2.在链表上进行插入、删除操作;  3.设计一个程序,用两个单链表分别表示两个集合,并求出这两个集合的并集。  实验要

2、求:  1.在上机前写出全部源程序;2.能在机器上正确运行程序;3.用户界面友好;  三、概要设计:  1.单链表的存储结构:teypedefstructLNode{ElemTypedate;  structLNond*next;}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、

5、j>i-1)returnERROR;  //i小小于1或者大于表长+1s=(LinkList)malloc(sizeof(LNode));  //生成新结点s->date=e;s->next=p->next;  //插入L中p->next=s;returnok;  }//ListTnsertL  3.单链表的删除操作:  StatusListDelete-L(LinkLIst&L,inti,ElemType&e){  //在带头结点单链线性表L中,删除低i个元素,并e返回其值p=l;j=0;  while(p->next&&jnext;+

6、+j;}  if(!(p->next)

7、

8、j>i-1)  returnERROR;//删除位置不合理  q=p->next;p->next=q->next;//删除并释放结点e=q->date  free(q);returnOK;  }//ListDelete-L  4.链表的合并操作:  voidMergeList-L(LinkList&La,LinkList&Lb,LinkList&Lc){//已知单链表La和Lb的元素值  //合并单链表La和Lb,得到新的单链表Lcpa=La->next;pb=Lb->next;  lc=pc=La

9、;//用La的头结点作为Lc的头结点  while(pa&&pb){if(pa->datedate){  pc->next=pa;pc=pa;pa=pa->next;}  else{pc->next=pb;pc=pb;pb=pb->next;}}  Pc->next=papa:pb;//插入剩余段free(Lb);//释放Lb头结点  }//MergeList-L四、详细设计:  #include#include#include#includetypedefintstatus;  typedefcharElemType;typedefstr

10、uctLnode  {ElemTypedata;  //定义链表结点类型  structLnode*next;  }Lnode,*Linklist;    statusinitlist(Linklist*L)  {  //单链表的初始化  *L=(Lnode*)malloc(sizeof(Lnode));//创建头结点  (*L)->next=NULL;  return1;  }    statusCreatelist(LinklistL){  Lnode*p,*q;inti,j=1,n;  ElemTypem,M;q=L;  printf

11、(请输入你要输入单链中元素的个数\scanf(scanf(  for(i=n;i>0;i--)  {p=(Lnode*)malloc(sizeof(Lnode));  printf(请输入%个元素:  scanf(  scanf(  p->data=M;  p->next=q->next;  q->next=p;  q=p;  j++;  }  return1;  }  statusListinsert(LinklistL,inti,ElemTypee){  intj=0;  Lnode*p=L,*s;while(p&&

12、jnext;  ++j;  }  if(!p

13、

14、j>i-1){printf(输入错误!\return0;  }  s=(Lnode*)malloc(sizeof(Lnod

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

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

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