欢迎来到天天文库
浏览记录
ID:21742956
大小:91.50 KB
页数:8页
时间:2018-10-24
《链表的基本操作实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《数据结构》实验报告学号1445203105姓名王胜博班级软件5班成绩实验名称实验三链表的基本操作是否原创是一、实验要求编程实现链表下教材第二章定义的线性表的基本操作,最好用菜中.形式对应各个操作,使其编程一个完整的小软件。二、实验目的通过该实验,深入理解链表的逻辑结构、物理结构等概念,掌握链表基本操作的编程实现,熟练掌握C语言中指针的操作。和实验2对比,掌握线性结构两种不同存储方式的区别。三、设计思想用函数执行各个功能,随机插入元素主要源代码#include#include#inc
2、ludetypedefintElemType;typedefstructNode{ElemTypedata;structNode*next;JNode,*LinkList;voidInitList(LinkList*L)*L=(LinkList)malloc(sizeof(Node));if(!(*L))printf("存储分配失败n);(*L)-〉next=NULL;voidDestroyList(LinkListL){LinkListp;while(L){p=L->next;free(L);L=p
3、;intListLength(LinkListL){LinkListp;inti=0;p=L->next;while(p){i++;p=p->next;}returni;}intGetElem(LinkListL,inti,ElemType&e){LinkListp;p=L->next;intj=l;while(p&&jnext;intj
4、=l;while(p->data!=i&&j<=ListLength(L))p=p->next;++j;e=j;returne;}voidFindPre(LinkListL,intx){LinkListp;P=L;if(p->next->data==x){printf(n第一个元素没有前驱n);}else{while(p->next){if(p-〉next-〉data==x){printf("%d的前驱结点是:。/od",x,p-〉dahi);break;}else]p=p->next;}}}}voidFindN
5、ext(LinkListL,intx){LinkListp;p=L->next;while(p){if(p->data==x){一printf("%d的后继结点是:%d",x,p-〉next-〉data);break;}else{p=p-〉next;}if(p->next==NULL)printfC最后一个元素没有后继11’’);break;}}}voidLinkInset_L(LinkList&L,inti,ElemTypee){LinkListp;P=L;intj=O;while(p&&j6、next;++j;}if(!plli>i-Dprintf("i小于1或者i大于表长加l");LinkLists;s=(LinkList)malloc(sizeof(Node));s->data=e;s-〉next=p-〉next;p-〉next=s;}voidListDelete_L(LinkList&L,inti,ElemType&e){LinkListp,q;P=L;intj=O;while(p->next&&jnext;++j;}if(!p-〉next7、8、j>i-l)primf("删除位置9、不合理");q=p->next;p->next=q->next;e=q-〉data;free(q);printff已删除的元素是:。/odn,e);}voidvisit(ElemTypee){printf("%d,'e);}voidListTraverse(LinkListL)LinkListp二L-〉next;while(p)visit(p-〉data);p二p-〉next;}printf("’’);}voidCreatListTail(LinkList*L,intn){LinkListp,r;inti;s10、rand(time(O));*L=(LinkList)malloc(sizeof(Node));r=*L;for(i=0;inext=NULL;}intmain()
6、next;++j;}if(!plli>i-Dprintf("i小于1或者i大于表长加l");LinkLists;s=(LinkList)malloc(sizeof(Node));s->data=e;s-〉next=p-〉next;p-〉next=s;}voidListDelete_L(LinkList&L,inti,ElemType&e){LinkListp,q;P=L;intj=O;while(p->next&&jnext;++j;}if(!p-〉next
7、
8、j>i-l)primf("删除位置
9、不合理");q=p->next;p->next=q->next;e=q-〉data;free(q);printff已删除的元素是:。/odn,e);}voidvisit(ElemTypee){printf("%d,'e);}voidListTraverse(LinkListL)LinkListp二L-〉next;while(p)visit(p-〉data);p二p-〉next;}printf("’’);}voidCreatListTail(LinkList*L,intn){LinkListp,r;inti;s
10、rand(time(O));*L=(LinkList)malloc(sizeof(Node));r=*L;for(i=0;inext=NULL;}intmain()
此文档下载收益归作者所有