一、线性表的逻辑结构
线性表是指由类型相同的数据元素组成的有限序列。元素a2的前驱为a1,后继为a3.
二、线性表的顺序存储结构
一般使用数组进行存储,在插入和删除的时候都需要顺移多个元素。
特点:
1.顺序存储结构是用一组地址连续的存储单元依次存储线性表的元素
2.顺序存储用元素在存储器中的物理位置相邻来表示元素之间的逻辑关系
3.可随机访问一个元素,是随机存储结构
4.插入删除时需要移动大量元素
三、线性表的链式存储结构
链式存储结构指逻辑上相邻的元素不要求在物理上也相邻
1、单链表(线性链表)
1.每个节点有两个成分域,一个数据值data,一个指向下一个节点的指针next。一般增加一个头指针,更加方便的操作线性链表
特点:
a.元素之间的逻辑关系由节点的指针表示
b.元素存储位置由直接前驱所指示
c.因为无法直接访问任意一个元素,需要从头节点找过来,因此不是随机存储结构
d.尾节点的后继为空
2.一般将节点定义为一个结构体
2、循环链表
与单链表差不多,就是尾节点的指针指向头节点。操作几乎与单链表差不多
3、双向链表
每个节点有两个指针域,分别指向前驱和后继。再加上一个数据域
在具体操作时,由于每次都需要遍历表,需要知道表长,因此可以添加变量存储当前位置序号、指向当前位置的指针、总元素个数。