1.线性表相关
1.1线性表的类型定义
线性表是形式为a1,a2,a3,···,an的数据对象,其中,ai是表中元素,n为表的长度,n==0,
表为空,ai是ai+1的直接前驱,ai+1是ai的直接后继,a1是第一个元素,任意一个元素的直接
前驱和直接后继的数量不超过1;
1.2线性表的顺序存储结构
- 线性表的顺序存储结构指的是逻辑上的顺序,在内存中他们可能并不是连续的(链表),在栈上声明的数组是连续的,在堆上声明的数组有可能不连续(CPP是这样)
- 线性表的操作集:初始化、撤销、判断是否为空、判断是否满、查找、插入、删除等等
- 数组的随机访问很好,链表的随机访问非常差,根据情况选择
2.链表
- 采用链式存储的方式存储数据,,很常用,元素之间逻辑上相邻
- 每个节点分为数据域和指针域
- 有些时候头结点不存储数据
- 千万不要弄丢指针,有可能会导致后面的数据再也找不到了
2.1单向链表
struct Node
{
ElementType Element;
Node* next;
}
2.2双向链表
struct Node
{
ElementType Element;
Node* Right;
Node* Left;
}
2.3循环链表
- 将链表连接成环
- 有两个指针:头指针、尾指针,分别指向链表的头和尾
2.4操作集
- 插入、删除、创建结点等等
- 懒得写了