前言

循环,顾名思义就是:绕。

打个比方,就是从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说“从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说“从前~~

对于单链表,由于每个结点只存储了向后的指针,到了尾部标识就停止了向后链的操作。也就是说,按照这样的方式,只能索引后继结点不能索引前驱结点。这样一来,不从头结点出发,这样就无法访问到全部结点。

为了解决这个问题,我们只需要将单链表的尾结点的指针由空指针改为指向头结点的指针,问题就结了。

将单链表中尾结点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表成为单循环链表,简称循环链表

:这里并不是说循环链表一定有头结点

其实循环链表的单链表的主要差异就在于循环的判断空链表的条件上,原来判断head->next是否为空,现在则是head->next是否等于head;

终端结点用尾指针rear指示,则查找终端结点是O(1),而开始结点是rear->next->next,当然也是O(1)

从无到有算法养成篇-链式存储结构之循环链表相关推荐

  1. 数据结构与算法——栈的链式存储结构及实现

    目录 前言 一.栈的链式储存结构 二.栈的链式储存结构的操作 2.1   进栈操作 2.2   出栈操作 总结 前言 讲完了栈的顺序储存结构,我们现在来看看栈的链式存储结构,简称为链栈. 由于单链表中 ...

  2. 【数据结构】CH2 线性表的链式存储结构

    目录 一.链表概述 1.相关定义 二.单链表 1.插入和删除节点的操作 (1)插入结点 (2)删除结点 2.建立单链表 (1)头插法 (2)尾插法 3.线性表基本运算在单链表中的实现 (1)初始化线性 ...

  3. 数据结构和算法:(3)3.2线性表的链式存储结构

    线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素也就是说你这个可以放在A地点,这个可以放在E地点,A地点和E地点中间可以隔开一个C地点和D地点,这样是允许的),这组存储单元可以存在 ...

  4. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  5. 数据结构与算法4——链式存储结构

    前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被 ...

  6. 这一篇让你弄懂线性表的链式存储结构

    线性表的链式存储结构以及单链表概念 本篇内容是线性表链式存储结构的相关概念 这里有几篇线性表的干货供大家讨论学习: 这里是吐血总结的线性表顺序存储结构 这里是单链表的各种操作,超详细~ 双向链表.循环 ...

  7. Python数据结构与算法基础|第五期:代码实现——循环队列的链式存储结构

    在上一次,我们通过取余等数学方法实现了顺序存储的循环队列.由于我们使用的是Python内置的列表类型作为底层,实际上我们的存储空间并不是首尾相连的.下面,我们使用链式存储结构来实现一个真正首尾相连的循 ...

  8. 数据结构与算法:一、线性表的顺序存储结构SeqList和链式存储结构LinkList

    实现了线性表的链式存储结构和线性存储结构,能进行插入元素O(n),删除元素O(n),查找元素O(n)和返回线性表长度O(1)的操作.其中链式存储结构使用了C++11的智能指针进行内存管理. 要点:链式 ...

  9. 链表list(链式存储结构实现)_5 线性表的链式存储结构

    系列文章参考资料为<大话数据结构>,源码为个人私有,未经允许不得转载 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,可以使连续的,也可以不连续,也就意味这些元素可以 ...

最新文章

  1. 阿里暴跌近6%,蒸发2400亿!拼多多火了,股价暴涨近15%!这个幕后的程序员开挂了,马云,刘强东都怕!...
  2. go 调用etcd实现分布式锁
  3. 父类没有异常,子类可以抛异常吗
  4. 拷贝boost::exception的测试程序
  5. vi is failed with error E382: Cannot write, 'buftype' option is set in Linux
  6. python中的try与if,python中if和try的区别是什么
  7. jquery打造一款侧边弹出的垂直导航
  8. 使用Visual Studio 2017/C#开始使用Selenium 3.7
  9. 滑轮滚动到页面底部ajax加载数据的实例
  10. kotlin android 镜像,【54】Kotlin android Anko 神兵利器
  11. 一个简单的DNS服务器架设
  12. 【通信】基于matlab多径衰落信道仿真【含Matlab源码 338期】
  13. 竞价推广的流程有哪些?
  14. HTML链接和锚点学习---第四天
  15. 0x752940B2(KernelBase.dll)(xxx.exe中有未经处理的异常:0xE0000008)
  16. 计算机无法搜索文件夹内容,系统我的电脑中文件夹和搜索选项无法使用的解决方法...
  17. Jenkins+Bitbucket webhook 自动触发构建
  18. LeetCode 6. Z 字形变换 (N字形变换)
  19. word表格跨页多出一根线(三线表)
  20. 逆向菜鸡实战破解思科模拟器登录限制

热门文章

  1. Mysql SQL Mode详解
  2. agent proxy comparison
  3. PAT甲级1046 Shortest Distance:[C++题解]前缀和
  4. summary_1.正念自控法
  5. BFD (双向转发检测) 协议简介与开发
  6. php cgi漏洞,CGI漏洞攻击合集上
  7. java类加载器_类加载器ClassLoader
  8. 提取文件出错_提取中文、英文和数字,其实很简单
  9. perl语言入门第七版中文_python和c语言哪个简单
  10. 如何让网页弹出确定_电脑去除网页上弹窗广告的操作方法