- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1循环链表 (Circular List) 特点:最后一个结点的 next 指针不为NULL,而是指向头结点。只要已知表中某一结点的地址,就可搜寻所有结点的地址。 存储结构:链式存储结构 带表头结点的循环链表: link creat_clist(link head) {link new,p; int c; head=(link)malloc(sizeof(node)); if(head==NULL) printf(“内存分配失败\n”); else {printf(“请输入结点数据:”\n); scanf(“%d”,c); head-data=c; head-next=NULL; p=head; while(1) {new=(link)malloc(sizeof(node)); printf (“请输入结点数据:”\n); scanf(“%d”,c); if(c!=-1) {new-data=c; p-next=new; p=new;} else {printf(“\n”); p-next=head; break;} } } return head; } 循环链表的输出: (1)先将指针指向第一个结点,将p结点的数据输出。 (2)再将p指向下一个结点,将数据输出,重复执行这一步,直到p结点等于head为止。 link print_clist(link head) {link p; p=head; printf(“您输入的循环链表是:\n”); do{printf(“[%d]”,p-data); p=p-next; }while(p!=head); printf(“\n”); } 需采用这种do~while循环,如果用while循环,将不能执行 循环链表的释放: 如果还使用单链表的算法,将出现死循环,将算法改动如下: 方法一:(将循环链表改为单链表再释放) (1)将指针p指向首结点的下一个结点,即第二个结点。(假设没有头结点) (2)将首结点的next域设成NULL (3)使用单链表的释放算法进行释放,这时的链表是以p为首结点的 方法二:(从循环链表的第二个结点开始释放) (1)将p指向首结点的指针所指向的结点,即第二个结点 (2)依次释放下一个结点,直到结点是首结点为止。最后再释放首结点。 void free_clist(link head) {link p,next; next=head-next; while(next!=head) {p=next; next=next-next; free(p);} free(head); } 二、循环链表结点的插入 三种情况:(1)插入在循环链表首结点之前。 (2)插入在循环表的中间 (3)插入在循环链表的表尾 算法思想: (1)声明一个新结点供用户输入新结点内容 (2)用户输入一个结点内容,表示欲插入在哪个结点之后 (3)找到该结点p,内容等于key或NULL(找不到该结点) (4)如果找到,则: new-next=p-next; p-next=new; 如果没找到,则: new-next=head; tail-next=new; head=new; link insert_clist(link head,link new,int key) {link p; p=head; while(1) {if(p-data==key) {new-next=p-next; p-next=new; break;} if(p-data!=keyp-next==head)//没找到 {new-next=p-next; p-next=new; head=new; break;} p=p-next;//向后搜索 } return head;} 三、循环链表结点的删除 (1)删除首结点 (2) 删除循环链表中间的结点 (3)删除循环链表尾端的结点 算法思想: (1)依次找到欲删除结点p (2)如果找不到该结点,输出提示 (3)如果找到,且是首结点,则必须找到尾结点tail head=p-next; ta
您可能关注的文档
- 《优化作文语言的方法.ppt
- 《人力资源管理一体化.ppt
- 《仪器分析英文课件Chapter1-Introduction.ppt
- 《企业文化价值观定义及行为描述.ppt
- 《优化策略与实施流程.ppt
- 《优化设计数学模型2).ppt
- 《优化设计数学模型.ppt
- 《优化设计的数学基础一).ppt
- 《优化设计的数学模型.ppt
- 《优化模型与LINDO_LINGO优化软件教程_来自清华大学数学科学系.ppt
- 中国快速感应炉行业市场规模及未来投资方向研究报告.pdf
- 中国昏睡驾驶员警报系统行业市场规模及未来投资方向研究报告.pdf
- 中国昏睡检测器行业市场规模及未来投资方向研究报告.pdf
- 中国快速半球摄像机行业市场规模及未来投资方向研究报告.pdf
- 中国智能自适应学习系统行业市场规模及未来投资方向研究报告.pdf
- 中国快速打印机行业市场规模及未来投资方向研究报告.pdf
- 中国快速可控硅行业市场规模及未来投资方向研究报告.pdf
- 中国昌河旗下轿车产品品牌(北斗星、利亚纳、派喜)行业市场规模及未来投资方向研究报告.pdf
- 中国快速应用开发行业市场规模及未来投资方向研究报告.pdf
- 中国快速控制原型系统行业市场规模及未来投资方向研究报告.pdf
最近下载
- 学校教师专业成长经验汇报.pptx VIP
- 建标197-2019 高等职业学校建设标准.pdf VIP
- 七上数学期末卷.doc VIP
- 2025-2026学年小学信息技术(信息科技)第三册电子工业版(2022)教学设计合集.docx
- 教师专业成长专业发展培训.pptx VIP
- 第11课 以社会主义核心价值观引领文化建设 课件(共28张PPT)-2025年中职高教版(2025)中国特色社会主义.pptx VIP
- 【期末复习提升卷】浙教版2022-2023学年七上数学期末综合 测试卷1.pdf VIP
- 渐进式延迟法定退休年龄办法解读课件.pptx VIP
- 国有独资有限责任公司章程参考样本.doc VIP
- 2024-2025学年广西南宁市统编版三年级上册期末考试语文试卷.pdf
原创力文档


文档评论(0)