栈理论
- 栈是限定仅在表的一端进行插入和删除操作的线性表,允许插入删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。
- 栈具有先进后出的特性
栈存储结构的实现
顺序栈和链栈的比较
- 顺序栈和链栈基本操作的时间复杂度均为O(1),因此唯一可以比较的是空间性能。
- 当栈使用的过程中元素个数变化比较大的时候用链栈,反之,应用顺序栈。
队列理论
- 队列是只允许在一端进行插入操作,另一端进行删除操作的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。
- 队列具有先进先出的特性。
队列存储结构的实现
循环队列和链队的比较
- 循环队列和链队的基本操作的时间复杂度都为O(1),因此唯一可以比较的是空间性能。
- 作为一般规律,如果队列中元素数目变化比较大,应采用链队,反之,应采用循环队列,如果确定不会发生假溢出,也可以采用顺序队列。