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

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

ID:59255972

大小:12.61 KB

页数:7页

时间:2020-09-08

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

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

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

2、验代码:#include#include#include#defineOK0#defineERROR-2#defineOVERFLOW-1typedefcharElemType;typedefstructCirNode{ElemTypedata;CirNode*next;}CirNode,*CirLinkList;voidInitCirList(CirLinkList*L){*L=(CirLinkList)malloc(sizeof(Cir

3、Node));if(!L)exit(OVERFLOW);(*L)->next=*L;//头指针跟尾指针}intDestroyList(CirLinkList*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

4、(CirLinkListL)//获得链表的长度{intnumber=0;CirLinkListp;p=L->next;//p指向头结点while(p!=L)//遍历链表{number++;p=p->next;}returnnumber;}ElemTypeGetElem(CirLinkListL,inti){ElemTypee;intj=1;CirLinkListp=L->next->next;//p指向第一个结点if(i<=0

5、

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

7、while(jnext;j++;}e=p->data;returne;}intLocateElem(CirLinkListL,ElemTypee){inti=0;CirLinkListp=L->next->next;//p指向第一个结点while(p!=L->next){i++;if(p->data==e)//与查找的元素相同returni;p=p->next;//未找到,继续查找}returnERROR;}intListInsert(CirLinkList*L,inti,Ele

8、mTypee){intj=0;CirLinkListp,s;p=(*L)->next;//p指向头结点if(i<=0

9、

10、i>ListLength(*L)+1)//插入位置非法returnERROR;while(jnext;j++;}s=(CirLinkList)malloc(sizeof(CirNode));//生成新结点s->data=e;s->next=p->next;//p->将当前插入的下一个点地址p->next=s;if(p==*L)*L=s;r

11、eturnOK;}intListDelete(CirLinkList*L,inti){CirLinkListp=(*L)->next,q;//p指向头结点intj=0;if(i<=0

12、

13、i>ListLength(*L))//删除位置非法returnERROR;while(jnext;j++;}q=p->next;//q指向待删除结点p->next=q->next;if(*L==q)//删除表尾元素*L=p;free(q);//释放删除结点returnOK;

14、}intDisplayList(CirLinkListL)//遍历链表{CirLinkListp;p=L->next->next;printf("链表的元素为:");while(p!=L->next){printf("%4c",p->data);p=p->next;}printf("");returnOK;}voidmain(){CirLinkListL;ElemTypee;intlength,index;InitCirList(&L);//创建空链表ListInsert(&L

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

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

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