数据结构:栈和队列的总结回顾
栈和队列都是线性表:
栈和队列,它们都是特殊的线性表,只不过对插入和删除操作做了限制。
栈:限定仅在表尾进行插入和删除操作的线性表。
队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
栈和队列的顺序存储结构:
它们都可以用线性表的顺序存储结构实现,但都存在着顺序存储的一些弊端,因此它们各自有一些技巧解决这个问题。
对于栈来说,如果两个相同数据类型的栈,则可以用数组的两端作栈底的方法让两个栈共享数据,最大化利用数组的空间。
对于队列来说,为了避免数组插入和删除时需要移动数据,引入循环队列,使得本来插入和删除是O(n)的时间复杂度变成了O(1)。
栈和队列的链式存储结构:
栈和队列的链式存储结构的实现原理和线性表的实现原理基本上相同。