一、单向循环链表简介

  • 单向循环链表是一个收尾相接的链表,将单链表的最后一个指针域改由NULL改为指向表头结点这就是单链式的循环链表,并称为循环单链表。

  • 带头结点的循环单链表的各种操作的算法实现与带头结点单链表的算法实现类似,差别仅在于算法判别当前结点p是否为尾结点的条件不同。单链表中的判别条件为p!=NULL或p->next!=NULL,而单循环链表判别条件是p!=L或p->next!=L。
  • 在循环单链表中附设尾指针有时候比附设头指针更简单。如:在用头指针的循环单链表中找a1的时间复杂度是O(1),找an需要从头找到尾,时间复杂度是O(n),如果用为指针rear,找开始结点和终端结点的存储位置分别是rear->next->next和rear。

二、单向循环链表的创建

① 思路

  • 第一次创建:如果链表为空,创建新的结点,并将新结点的next指向自身((*L)->next = (*L)),否则寻找尾结点;
  • 不是第一次创建:找到链表结尾的位置,将尾节点next指向新结点,并将新结点的next等于首元节点(新结点的next = (*L)

【数据结构与算法】之单向循环链表的创建/遍历/插⼊/查找/删除算法实现相关推荐

  1. node 获取表单数据 为空_数据结构与算法(python)单向循环链表

    单向循环链表 单链表的一个变形是单向循环链表, 链表的最后一个节点的next域不再为None, 而是指向链表的头节点. 单向循环链表如图所示: 单向循环链表 同样单向循环链表也是要使用python来对 ...

  2. 【数据结构与算法】之双向链表的创建/遍历/插入/删除/查找的算法实现

    双向链表简介 双向链表是数据结构中重要的结构,也是线性结构中常用的数据结构,双向指针,方便用户从首结点开始沿指针链向后依次遍历每一个结点,结点的前驱和后继查找方便. 其实双向链表和单向链表也是有很多相 ...

  3. c语言编程切片stl1005无标题,C语言实现简单的单向链表(创建、插入、删除)及等效STL实现代码...

    实现个算法,懒得手写链表,于是用C++的forward_list,没有next()方法感觉很不好使,比如一个对单向链表的最简单功能要求: input: 1 2 5 3 4 output: 1-> ...

  4. 算法笔记--STL中的各种遍历及查找(待增)

    算法笔记 map: map<string,int> m;map<string,int>::iterator it;//auto itit = m.begin();while(i ...

  5. Day 62 数据结构(单向链表,单向循环链表,双向链表)

    1. 单向链表的设计 例程:创建一个动态单向链表 1.定义链表结点:数据域+指针域 2.定义链表结构体:头结点指针+结点数 3.初始化链表 4.指定位置插入新数据 5.删除指定位置数据 6.获取链表长 ...

  6. 从无到有算法养成篇-单向循环链表的常规操作

    1.单向循环链表的创建 创建 tips: 由于存在两种情况: ① 第一次开始创建; ②已经创建,往里面新增数据 所以需要判断是否第一次创建链表 YES->创建一个新结点,并使得新结点的next ...

  7. 单向循环链表的简单实现

    单向循环链表:       在单向链表中,头指针是相当重要的,因为单向链表的操作都需要头指针,所以如果头指针丢失或者破坏,那么整个链表都会遗失,并且浪费链表内存空间. 单向循环链表的构成:       ...

  8. java与数据结构(4)---java实现双向循环链表

    线性表之链式存储结构双向循环链表 双向循环链表:每个结点包含了数据.直接前驱地址指针和直接后驱地址指针,头结点的直接前驱指向尾结点,尾结点的直接后驱指向头结点,头尾相连构成一个可正可反的圆环.可以形象 ...

  9. Algorithms_基础数据结构(04)_线性表之链表_单向循环链表约瑟夫环问题

    文章目录 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 约瑟夫问题 结构 分析 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 tip:单向链表 约瑟夫问题 N个人围成一圈, ...

最新文章

  1. php mssql生僻字,php生僻字的處理,插入數據庫被截斷,空白,亂碼解決辦法,php冷僻字處理...
  2. [转]XNA 3.1 转换到 XNA4.0 的备忘录
  3. 黑客技术的网站(❤️可以自学,建议收藏❤️)
  4. PAT乙级 1006 换个格式输出整数
  5. wince模拟器访问网络_在Wince模拟器接入网络的方法
  6. C语言实现常用排序算法——基数排序
  7. Kettle 之 javascript字段数据处理
  8. java1.6升级1.7_jdk从1.6升级到1.7可能会遇到的Version问题
  9. 升级成员服务器-从Windows 2012升级到2016案例之2
  10. 传智黑马python18期_传智博客黑马Python就业14期资料
  11. Java医院管理系统完整代码_医院管理系统(JAVA代码)
  12. 常用的即时通讯软件排行榜TOP10介绍
  13. MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)
  14. 设计模式回顾——模板模式(C++)
  15. 如何判断一个数是否为超级素数
  16. ESXI6.7安装补丁
  17. 51单片机学习随笔(1)
  18. org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction
  19. 关于zip包解压之后文件打开出现文件损坏的问题
  20. 【React】React 详细教程

热门文章

  1. 【SpringBoot】服务器端主动推送SSE技术讲解
  2. nodejs内存溢出
  3. ObjectInputStream和ObejctOutputStream
  4. 网络编程第三讲UDP编写
  5. clone()与image和 cloneTo()
  6. BZOJ 2208[Jsoi2010]连通数
  7. HTML5 required是必填
  8. matlab车辆贪心作业调度,贪心算法-区间调度-Interval Scheduling
  9. 前端如何获取联通积分_2020办理深圳户口如何查询积分?怎样获取更多积分?快看这里...
  10. 2006年上海交通大学计算机研究生机试真题