1.链表是什么
A.定义:链表是上一个元素指向下一个元素的存储结构,链表使用过指针来连接元素与元素
B.链表的作用:链表将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决了空间的问题
C.链表分类
a.单向链表
b.双向链表
c.循环链表
D.优缺点:链表允许插入和删除链表上的任意位置上的节点,但不允许随即存取.
2.单向链表
A.单向链表区域
a.信息域
b.指针域
B.图片说明:参照链接https://blog.csdn.net/m0_37631322/article/details/81777855
C.详解
a.信息域:保存和先死关于节点的区域
b.指针域:存储下一个节点的底子,而最后一个节点则指向一个空值
3.双向链表
A.双向链表区域
a.向前的节点链接
b.数值
c.向后的节点链接
B.图片说明:参照链接https://blog.csdn.net/m0_37631322/article/details/81777855
C.详解:
从上图可以很清晰的看出,每个节点有2个链接,一个是指向前一个节点(当此链接为第一个链接时,指向的是空值或空列表),另一个则指向后一个节点(当此链接为最后一个链接时,指向的是空值或空列表)。意思就是说双向链表有2个指针,一个是指向前一个节点的指针,另一个则指向后一个节点的指针
4.循环链表
图说明:参照链接https://blog.csdn.net/m0_37631322/article/details/81777855
循环链表就是首节点和末节点被连接在一起。循环链表中第一个节点之前就是最后一个节点,反之亦然。
5.数组和链表的区别?
不同:链表是链式的存储结构;数组是顺序的存储结构。
链表通过指针来连接元素与元素,数组则是把所有元素按次序依次存储。
链表的插入删除元素相对数组较为简单,不需要移动元素,且较为容易实现长度扩充,但是寻找某个元素较为困难;
数组寻找某个元素较为简单,但插入与删除比较复杂,由于最大长度需要再编程一开始时指定,故当达到最大长度时,扩充长度不如链表方便。
相同:两种结构均可实现数据的顺序存储,构造出来的模型呈线性结构。