- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单链表有环判断及其起始位置定位 主讲人:刘其强 2016年9月27日 目录 链表的定义及单链表 有环单链表 单链表有环判断及其起始位置定位 C++代码 链表的定义及单链表 链表是将数据元素存放在不连续的地址空间中的一种线性表。链表分为单链表、双链表和循环链表几类。 单链表的每一个结点包含两部分数据域和下一个结点的地址即指针域。这里一个链表通常有一个“表头”,用来存放第一个结点的地址。每一个结点的后面一个结点称为该结点的后继,链表也会有一个“表尾”,表尾没有后继,所以尾结点的指针域为空指针(NULL)。单链表结构如下图1所示。 图1 单链表数据结构示意图 单链表具有以下特征 单链表结点的物理位置不一定连续,单链表逻辑上通过指针实现连续。 单链表有一个头结点和一个为结点,并且只有尾结点没有后继点,其它结点有且仅有一个后继结点。 只要知道了链表的头结点,就可以遍历整个链表。 有环单链表 通过图1可以看出,单链表的每一个存储结点(头结点和尾结点除外)在结构上只有一个前驱结点和一个后继结点,其头结点没有前驱并且尾结点没有后继,所以,有环单链表的结构必然如下图2所示。 图2 有环单链表 单链表有环只能是指它末尾有环,不会是中部,因为如果那样的话就违背了单链表只有一个后继结点的要求。所以,我们可以将有环单链表看成是一个单链表与一个循环链表的组合。 单链表有环判断及其起始位置定位 判断一个单链表是否有环最简便的方法就是追逐法。设置两个指针p和q指向链表的头结点,然后循环移动两个指针,p指针每次移动一个节点,即一步,q指针每次移动两步,如果该单链表存在环,那么这两个指针总会在某个位置相遇。如果链表无环,则q会率先指向NULL。具体的过程如图3所示。 图3 判断链表有环运行图 如何找出有环链表中环的起始位置,通过图2可知,只要确定了环的长度和链表的长度,就能轻松的计算头结点到环起始位置之间的链表长度,这样环的起始位置就呼之欲出了。 C++代码 1、链表有环判断 bool isCircleLink(Node *head) { If(head==NULL) return false; Node *p,*q; p=q=head; while(q!=NULLq-next!==NULL) { p=p-next; q=q-next-next; If(p==q) break; } If(p==qp!=NULL) return true; return false; } 2、寻找链表环起始位置 Node circleStar(Node *head) { If(head==NULL) return false; Node *p,*q; p=q=head; while(q!=NULLq-next!==NULL) { p=p-next; q=q-next-next; If(p==q) break; } If(p==qp!=NULL) { q=head; While(p=!q) { p=p-next; q=q-next; } return p; } else return NULL; }?
您可能关注的文档
- 华师版八上第17课解放战争的胜利2.ppt
- 《汉语拼音3bpmf》教学课件.ppt
- 华康健业策划.ppt
- 《陋室铭》课件(35页).ppt
- 《沁园春·长沙》自用邱.ppt
- 华民慈善基金会2012年第五期大学生就业扶助项目介绍-1336617733.ppt
- 《隆中对》复习.ppt
- 华浔紫晶工程介绍.ppt
- 《隆中对》课件(37页)2.ppt
- 华环网管软件安装帮助.ppt
- 2025年八年级统编版语文寒假复习 专题02 说明文阅读(考点剖析+对点训练).docx
- 中石油下属企事业单位名称英文翻译.pdf
- 20102014建筑规范图集等相关目录.pdf
- 井控管理制度修订版.pdf
- 乌鲁木齐万达广场销售物业分户验收方案A版.pdf
- 2025年七年级统编版语文寒假复习 专题06 整本书阅读(考点剖析+对点训练).docx
- 2025年九年级统编版语文寒假复习 01 第一周:九上第一、二单元复习.pdf
- 2025年九年级统编版语文寒假复习 04 第四周:九上第六单元及名著阅读.docx
- 2025年七年级统编版语文寒假预习 第01讲 孙权劝学.docx
- 2025年九年级统编版语文寒假复习 03 第三周:九上第四、五单元复习.docx
文档评论(0)