定义
线性表是零个或多个具有相同类型的数据元素的有限序列
- 线性表
-
顺序存储结构
数组 -
链式存储结构
一排挂钩,无限挂,地址随便不连续可以,去掉中间一个挂钩,则后续挂钩占它的位置补上- 单链表:每个节点只记录当前元素内容+下一个元素存储位置
单链表第一个节点前附设一个节点,称为头结点,头结点数据域可以不存信息或存线性表长度等,头节点指针域存指向第一个节点的指针。 - 静态链表 :以数组游标形式记录位置。
- 循环链表:将单链表中终点节点指针由空指针改为指向头结点,就使整个单链表形成一个环,首尾相接的单链表陈伟单循环链表,简称循环链表。
- 双向链表:在单链表的节点中再设置一个指向前驱节点的指针域。
- 单链表:每个节点只记录当前元素内容+下一个元素存储位置
-
顺序存储结构
用一段连续地址连续的存储单元依次存储线性表的数据元素,通常用数组来实现这一结构。
如 : List 数据结构即为数组
增删慢,查找快
每个元素在都有自己的物理位置信息,故查找快,直接访问地址,复杂度O(1);
插入与删除:好像排队买票,插入删除一个,后续人员的位置都会移动,复杂度O(n)
链式存储结构
线性表的链式存储结构特点是用一组任意的存储单元存储线性表的数据元素,存储单元可连续可不连续,即这些元素可以存储在内存中未必占用的任何位置
记录:数据信息+下个元素
增删快,查找慢
链式存储结构:就好像一排幼儿园小盆友出门,每个人扯着前面人的衣角,每个人都要记住前后人是谁,好像一串挂钩挂在一起
增删的时候,只需断开前后的连接,重新支配一下,复杂度O(1)
查找的时候并不知道物理地址,只能从前向后遍历,复杂度O(n)