对于线性表的操作:
(1)创建线性表
(2)确定线性表的长度
(3)确定线性表是否为空
(4)存取表中指定位置的节点的值
(5)查找指定值在表中的位置
(6)在表中指定位置插入一个新节点
(7)删除表中指定位置的节点
1.线性表的顺序存储结构
按顺序存储方式存储的线性表具有顺序存储结构,称为顺序表。
节点存储在一组地址连续的内存单元中。
优点:存储空间利用率高,存取速度快。
2.线性表的链接存储结构
用链接方式存储的线性表称为链表。
优点:不必调整节点的地址,存储单元对存储空间的连续与否不要求。
链表的三种实现方式:单链表,循环链表和双向链表。
结点由数据域和指针域构成。指针域指向下一个结点(存放下一个结点的地址信息)
链表的第一个节点为头结点(表头),最后一个节点(表尾)。
指向表头的指针为头指针,指向表尾的指针为尾指针。
验证一个结点是否为尾结点,看指针域域值是否为NULL。
空链表:只有一个空结点,头指针尾指针指向它。
循环链表:将原来单链表的表尾的指针指向第一个哨位结点(数据域为空的结点)。
循环链表为空:只有一个空结点,头指针指向它,它指向自己(空的哨位结点)。
双向链表:有2个指针域,一左一右,分别指向前面和后面的结点。尾结点的right域为空,头结点的left 指向哨位结点,哨位结点的left为空.
双向链表更易找到前驱结点。
删除结点,双方的指向要搞清楚,分别考虑删头,尾,普通结点的情况。
3.堆栈
3.1用顺序方式存储的堆栈称为顺序栈。
用数组来存放栈元素。
3.2用链接方式存储的堆栈称为链式栈。