第二章链表一、链表理论基础
1.1链表的定义1.2链表的类型
单链表长这个样:双链表长这个样:循环链表 1.3链表的存储方式 二、链表的操作
2.1删除节点2.2添加节点 三、性能分析:四、题型总结
一、链表理论基础 1.1链表的定义链表就是由指针串联在一起的线性结构。链表的结点组成为:
- 数据域 data指针域 next
链表的入口节点就是链表的头结点 head
1.2链表的类型单链表长这个样:
双链表长这个样:
双链表的每一个节点有两个指针域,一个数据域:
- prev(指向上一个节点)next(指向下一个节点)data(存储数据)
双链表 既可以向前查询也可以向后查询。
循环链表
循环链表就是链表首尾相连,可以用来解决约瑟夫环问题。
1.3链表的存储方式数组在内存中是连续分布的,但是链表在内存中是不可连续分布的,链表是通过指针域的指针连接在内存中的各个节点。链表中的节点散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。
上图可知,各个节点分布在内存不同的地址空间,通过指针串联在一起了。
二、链表的操作 2.1删除节点c->next=D->next;2.2添加节点
f->next=D; c->next=f;三、性能分析:
链表和数组特性分析如下:
四、题型总结203.移除链表元素
707.设计链表
206.反转链表
19.删除链表倒数第N个节点
142.环形链表 II



