- 数据结构是数据的组织方式,这里记录的只是常用的数据结构。自己可以定义以一种特殊的数据结构
- 可以将数据结构理解为一包纸巾、一些统一方式叠在一起的衣服。
- 数组也是一种数据结构,但这种数据结构却频繁用于实现各种数据结构
线性结构
- 线性结构指的是,数据之间的关系是:一对一。
线性表
- 线性表分为顺序表与链表。
- 顺序表是用数组来实现的。正因此顺序表容易出现的问题是:数组下标与实际数的索引会相差一。大多数问题都由此引起
- 链表没啥好说的
栈
栈是只能在表尾进行插入和删除操作的线性表
- 栈中的元素只能从栈顶部进、出
- 栈分为顺序栈和链栈
- 符合人的观念的是顺序栈
队列
队列是一种运算受限的线性表
- 队列中的元素只能从表头出,表尾入
- 队列分为顺序队列和链队列,一般使用链队列
- 队列由队头、队尾指针构成
- 顺序队列需要考虑的是循环顺序队列,因为顺序队列每次进入元素的时候,都是在表尾进入。因此,队尾指针总有指向数组上限的一天。当指向数组上限时,再进入元素就要思考能不能进入的问题了
非线性结构
- 非线性结构指的是,数据之间的关系是:一对多,多对多。
树
二叉树
- 对于二叉树,只要理解一个概念:无论是左孩子还是右孩子,都要看做是一个结点。对任何节点的操作,都要以此思想来面对。
- 目前没有看到其他难点