第二讲
什么是线性表
由同类型数据元素构成的有序序列结构。线性表可以用顺序存储结构,也可以使用链式存储结构。
链式结构的插入删除复杂度低,顺序存储随机访问更快,并且在很多收顺序存储的空间利用率比较低,浪费内存空间。
什么是广义表
广义表是相对线性表而言的,线性表的元素是数据元素,而广义表的元素可能还是一个线性表。
例子:十字列表存储矩阵。
线性表:堆栈
例子:算术表达式的计算,后缀表达式。
堆栈操作:
- 只能从一端添加/删除数据。(入栈/出栈)
- 遵循后入先出
一个注意的点:堆栈用单向列表(链式结构存储),选用表头作为入栈出栈端口。
应用:函数的递归,深度优先搜索,回溯算法。
线性表:队列
例子:
队列操作:
- 只能在一端增加,在另一端删除。
- 遵循先进先出。
同样在链式队列中,怎么选择队头和队尾。