[2017年整理]钟晓鸿单循环链表基本操作

上传人:豆浆 文档编号:918287 上传时间:2017-05-21 格式:DOC 页数:5 大小:41KB
返回 下载 相关 举报
[2017年整理]钟晓鸿单循环链表基本操作_第1页
第1页 / 共5页
[2017年整理]钟晓鸿单循环链表基本操作_第2页
第2页 / 共5页
[2017年整理]钟晓鸿单循环链表基本操作_第3页
第3页 / 共5页
[2017年整理]钟晓鸿单循环链表基本操作_第4页
第4页 / 共5页
[2017年整理]钟晓鸿单循环链表基本操作_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《[2017年整理]钟晓鸿单循环链表基本操作》由会员分享,可在线阅读,更多相关《[2017年整理]钟晓鸿单循环链表基本操作(5页珍藏版)》请在金锄头文库上搜索。

1、#include#includetypedef struct nodeint data;struct node *next;lnode,*linkedlist;/*单循环链表建立*/linkedlist linkedlistcreat()int x;linkedlist L,p,r;L=(lnode*)malloc(sizeof(lnode);L-next=NULL;r=L;scanf(%d,&x);while(x!=-1)p=(lnode*)malloc(sizeof(lnode);p-data=x;r-next=p;r=p;scanf(%d,&x);r-next=L;return L;/*

2、打印链表*/void linkedlistprint(linkedlist L)linkedlist p=L-next;printf(n/*打印链表*/n);while(p!=L)printf(%5d,p-data);p=p-next;/*求单循环链表的长度*/void linkedlistlenght(linkedlist L)int x=0;linkedlist p=L-next;while(p!=L)x+;p=p-next;printf(n/*求单循环链表的长度*/);printf(n 本单循环链表的长度是:%d,x);/*求第 i 个元素*/void linkedlistget(lin

3、kedlist L) int x,j=1;linkedlist p=L-next;printf(n/*求第 i 个元素*/n);printf(n 您要求第几个元素请输入:);scanf(%d,&x);while(jnext;printf(您要求的第%d 个元素是%d,x,p-data);/*元素定位*/void linkedlistlocate(linkedlist L)linkedlist p=L-next;int x,j=1;printf(n/*元素定位*/n);printf(您要定位的元素是什么请输入:);scanf(%d,&x);while(p-data!=x)j+;p=p-next;

4、printf(您要定位的元素%d 是本单循环链表中的第%d 个元素,x,j);/*求某元素前驱*/void linkedlistprior(linkedlist L)linkedlist pre=L,p=L-next;int x;printf(n/*求某元素前驱*/n);printf(n 您要用于求其前驱的元素是请输入:);scanf(%d,&x);if(p-data=x) printf(n%d 就是本单循环链表的第一个元素,故其没有前驱。,x);elsewhile(p-data!=x)pre=pre-next;p=p-next;printf(n 您输入的元素%d 的前驱是%d,x,pre-d

5、ata);/*求某元素后继*/void linkedlistnext(linkedlist L)int x;linkedlist p=L-next;printf(n/*求某元素后继 */n);printf(n 您要求哪个元素的后继请输入:);scanf(%d,&x);while(p-data!=x)p=p-next;if(p-next=L) printf(n%d 是本单循环链表规定的最后一个值。 ,x);elseprintf(n%d 的后继是%d,x,p-next-data);/*在某元素后插入的函数*/void linkedlistinser(linkedlist L)int x,y;lin

6、kedlist s,q=L-next,p=L-next;printf(n/*在某元素后插入的函数*/n);printf(您要在哪个元素后插入什么元素请分别输入:);scanf(%d %d,&x,&y);s=(lnode*)malloc(sizeof(lnode);s-data=y;while(p-data!=x)p=p-next;s-next=p-next;p-next=s;/*删除元素函数*/void linkedlistdelete(linkedlist L)int x;linkedlist pre=L,p=L-next;printf(n/*删除元素函数*/n);printf(n 您要删除

7、哪个元素请输入:);scanf(%d,&x);while(p-data!=x)pre=pre-next;p=p-next;pre-next=p-next;free(p);void main()int flag;linkedlist p;printf(n 请您输入数据构造单循环链表:);p=linkedlistcreat();printf(n/请您选择操作类型/n);printf(0.退出操作。1.打印链表。2.求链表长度。3.求第 i 个元素。4.元素定位。5.求某元素前驱。6.求某元素后继。7.在某元素后插入的函数。8.删除元素函数。n);printf(n 请选择:);scanf(%d,&f

8、lag);while(flag)switch(flag)case 0: break;/*退出操作*/case 1: linkedlistprint(p); break;/*打印链表*/case 2: linkedlistlenght(p); break;/*求单循环链表的长度*/case 3: linkedlistget(p); break;/*求第 i 个元素*/case 4: linkedlistlocate(p); break;/*元素定位*/case 5: linkedlistprior(p); break;/*求某元素前驱*/case 6: linkedlistnext(p); break;/*求某元素后继*/case 7: linkedlistinser(p);break;/*在某元素后插入的函数*/case 8: linkedlistdelete(p);break;/*删除元素函数*/printf(n 请选择:);scanf(%d,&flag);printf(n 退出操作。);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号