c语言数据结构单循环链表

c语言数据结构单循环链表

ID:21957299

大小:79.75 KB

页数:7页

时间:2018-10-25

c语言数据结构单循环链表_第1页
c语言数据结构单循环链表_第2页
c语言数据结构单循环链表_第3页
c语言数据结构单循环链表_第4页
c语言数据结构单循环链表_第5页
资源描述:

《c语言数据结构单循环链表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、姓名:冯天明学号:班级:通信1412015年9月28日星期一实验四:编写一个程序,实现单循环链表的各种基本运算,并在此基础上设计一个主程序完成以下功能。1.初始化单循环链表L2.依次采用尾插法或者头插法插入元素a,b,c,d,e3.输出单循环链表4.输出单循环链表的长度5.判断单循环链表是否为空6.输出单循环链表的第四个元素7.输出元素a的位置8.在第三个元素位置插入元素f9.输出单循环链表L10.删除单循环链表L的第四个元素11.输出单循环链表L12.释放单循环链表实验代码:#include

2、#include#include#defineOK0#defineERROR-2#defineOVERFLOW-1typedefcharElemType;typedefstructCirNode{ElemTypedata;CirNode*next;}CirNode,^CirLinkList;voidInitCirList(CirLinkList*L)if(!L)exit(OVERFLOW);(*L)-〉next=*L;//头指针跟尾指针}intDestroyList(Ci

3、rLinkList*L){CirLinkListq,p=(*L)-〉next;//p指向头结点while(p!=*L)//直到表尾{q=p-〉next;free(p);p=q;}free(*L);//释放头结点内存*L=NULL;returnOK;}intListEmpty(CirLinkListL){return(L==NULL);}intListLength(CirLinkListL)//获得链表的长度{intnumber=0;CirLinkListp;p=L->next;//p指向头结点while(p!=

4、L)//遍历链表{number++;p=p->next;}returnnumber;}ElemTypeGetElem(CirLinkListL,inti)ElemTypee;intj=l;CirLinkListp=L-〉next-〉next;//p指向第一个结点if(i<=O

5、

6、i>ListLength(L))//位置非法returnERROR;while(j

7、ti=0;CirLinkListp=L-〉next-〉next;//p指向第一个结点while(p!=L->next){i++;if(p->data==e)//与查找的元素相同returni;p=p->next;//未找到,继续查找}returnERROR;}intListInsert(CirLinkList*L,inti,ElemTypee){intj=0;CirLinkListp,s;p=(*L)-〉next;//p指向头结点if(i<=O

8、

9、i〉ListLength(*L)+l)//插入位置非法retur

10、nERROR;//查找i-l个位置p干〉next;j++;}s=(CirLinkList)malloc(sizeof(CirNode));//生成新结点s-〉data=e;s->next=p->next;//p-〉将当前插入的下一个点地址p->next=s;if(P==*L)*L=s;returnOK;}intListDelete(CirLinkList*L,inti){CirLinkListp=(氺L)-〉next,q;intj=0;if(i<=O

11、

12、i>ListLength(*L))returnERROR;

13、while(jnext;j++;}q=p->next;p-〉next=q-〉next;if(*L==q)^L=p;free(q);returnOK;}intDisplayList(CirLinkListL)//p指向头结点//删除位置非法//查找i-l个结点//q指向待删除结点//删除表尾元素//释放删除结点//遍历链表{p=L-〉next-〉next;printf(’’链表的元素为:n);while(p!=L->next){printf(’’%4c’’,p-〉data);p=p-〉nex

14、t;}printf(nn);returnOK;}voidmain(){CirLinkListL;ElemTypee;intlength,index;InitCirList(&L);//创建空链表Listlnsert(&L,1,'a’);"依次插入元素ListInsert(&L,2,'b’);ListlnsertC&L^/c1);ListInsert(&L,4,'d’);ListIn

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

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

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