1.为什么需要双向链表 答:单链表的节点都只有一个指向下一个节点的指针;单链表的数据元素无法直接访问前驱元素;逆序访问单链表中的元素是极其耗时的!!! 2.双向链表删除节点的3种情况 3.循环链表的插入情况 4.循环链表的删除的几种情况 6.单向链表的插入 7单向链表的删除操作 ...
分类:
其他好文 时间:
2018-08-12 17:15:25
阅读次数:
158
(一)定义 (二)结点结构 (三)双向链表结构 双向循环链表 带有头结点的空链表 带有头结点的数据链表 (四)实现双向链表 (五)打印预览 (六)总结 ...
分类:
其他好文 时间:
2018-08-06 13:40:56
阅读次数:
147
(一)合并两个循环链表 (二)判断单链表中是否有环 方法一:使用两个指针,循环嵌套,A指针在外层循环,一步一步向下走,B指针在内层循环,循环到A的位置,当两者的位置相同时判断走的步数是否一致,不一致则代表有环。且能够得到准确的环路节点。其中A是要将链表从头走到尾,B是一直在内层进行循环,时间复杂度为 ...
分类:
其他好文 时间:
2018-08-05 23:29:51
阅读次数:
243
(一)前提 (二)实现结构 (三)代码实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> #define OK 1 #define ERROR 0 #define TR ...
分类:
其他好文 时间:
2018-08-05 17:27:58
阅读次数:
176
一、链表 概念:链表[Linked List]是由一组不必相连(可连续可不连续)的内存结构(节点),按照特定的顺序链接在一起的抽象数据类型; 分类:链表常用的大概有三类:单链表、双向链表、循环链表(这篇文章主要讲单链表) 操作:链表的核心操作主要有三个(查找遍历、插入、删除) 二、单链表 上图就是一 ...
分类:
其他好文 时间:
2018-08-05 15:53:30
阅读次数:
144
约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止
分类:
其他好文 时间:
2018-08-05 11:55:56
阅读次数:
144
LinkedList接口(在代码的使用过程中和ArrayList没有什么区别) ArrayList底层是object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。 而在LinkedList的底层是一种双向循环链表。在此链表上每一个数据节点都由三部分组成:前指针(指向前面 ...
分类:
编程语言 时间:
2018-08-04 23:21:43
阅读次数:
231
什么是链表? 链表就是链式存储的线性表。根据指针域的不同,链表分为单向链表、双向链表、循环链表等等 链表属性 相邻元素之间通过指针链接 最后一个元素的后继指针为NULL 在程序执行过程中,链表的长度可以增加或缩小 链表的空间能够按需分配 没有内存空间的浪费 优点: 插入和删除时不需移动其他元素, 只 ...
分类:
其他好文 时间:
2018-07-29 22:27:39
阅读次数:
186