线性表知识之单链表,我们使用C++来描述,通俗易懂,简单易学 ...
分类:
编程语言 时间:
2019-10-01 20:43:58
阅读次数:
90
"传送门:[LeetCode] 206. 反转链表" 题目描述 反转一个单链表。 示例 : 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 链表定义如下: 分析与代码 解法一、迭代 用一个 pre 指针记录 ...
分类:
其他好文 时间:
2019-10-01 18:08:06
阅读次数:
68
线性表的链式存储是用结点来存储数据元素,基本结点的结构为数据域指针域其中,数据域用于存放存储数据元素的值,指针域存储当前元素的直接前驱或者直接后继的位置信息,指针域中的信息称为指针(或链)。设线性表中的元素是整形,则单链表节点类型的定义为:12345typedef struct { int data... ...
分类:
其他好文 时间:
2019-10-01 11:36:17
阅读次数:
77
什么是单链表 在了解单链表之前,你知道什么是链表吗?如果你不知道什么是链表,可以看看我的这篇博客 单链表是链表的其中一种基本结构。一个最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的结点。 因为只有一个指针结点,称为单链表。 ...
分类:
编程语言 时间:
2019-10-01 00:08:56
阅读次数:
126
什么是双向循环链表 在了解双向循环链表之前,如果对链表还没有一个清晰的概念,建议你看看 "单链表" 和 "单向循环链表" ,这有利于你更好的理解下面的内容。(废话有点多[逃] 相比单链表,双向循环链表是一个更加复杂的结构。因为双向循环链表的节点不仅包含指向下一个节点的指针(next),还包含指向前一 ...
分类:
编程语言 时间:
2019-09-30 23:37:57
阅读次数:
139
①中文题目 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 ②思路 遍历,O ...
分类:
其他好文 时间:
2019-09-29 22:16:21
阅读次数:
116
上回说到建立链表的三种形式,分别是头插法,尾插法,和尾插法MAX😂 👇下面讲一下循环单链表👇 循环单链表,字面意思,就是单链表循环了起来,尾节点在输入结束后不会指向NULL,而是指向了头节点head 酱紫,链表就循环了起来 下面是代码实现 #include <stdio.h> #include ...
分类:
编程语言 时间:
2019-09-28 01:18:48
阅读次数:
175
单链表 1、头插法建表 2、尾插法建表 3、查找第i个节点 4、按值查找 5、计算链表长度 6、插入元素 7、打印链表 链表的删除操作就不说了,和上面的操作差不多,先找第i-1各元素,然后改指针就OK,比较简单。 循环链表,在表的首尾进行操作比较合适。 双向链表,寻找前驱节点比较合适。 操作方式都差 ...
分类:
编程语言 时间:
2019-09-27 19:17:22
阅读次数:
95
单链表:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。自己手动写一个单链表:首先,定义一个节点类: 第 ...
分类:
编程语言 时间:
2019-09-27 19:09:54
阅读次数:
82
一、概念 链表和数组都是一种线性结构,数组有序存储的,链表是无序存储的。 数组中的每一个元素地址是递增或者递减的关系,链表的每一个节点的地址没有此规律,它们是通过指针的指向连接起来。 链表种类:单链表、双向链表、循环链表、双向循环链表 单链表:一个数据域data、一个后继指针域next。也即:上一个 ...
分类:
其他好文 时间:
2019-09-27 12:28:49
阅读次数:
65