1.栈和队列特点
栈:
特点:线性结构,只能是栈顶出元素,先进后出。
顺序表特点:尾插、尾删很容易,效率高并且获取尾元素效率高,因为内存是连续。
链表特点:头插、头删、效率高,但是获取尾元素效率很低。
所以:栈基本上都是顺序表。
队列:
特点:一端进元素, 端出元素,先进先出根据它先进先出的特点,很明显链表的特点就很适合,只要用一个头指针(不是哨兵位的意思)指向头, 一个尾指针指向尾,尾进元素,头出元素,就刚好符合队列的特点。
所以:队列用链表比较合适。
循环队列:
这种是比较特殊的队列,他们的空间大小是固定的。
2.常见习题:
20. 有效的括号 - 力扣(Leetcode)https://leetcode.cn/problems/valid-parentheses/description/
225. 用队列实现栈 - 力扣(Leetcode)https://leetcode.cn/problems/implement-stack-using-queues/
232. 用栈实现队列 - 力扣(Leetcode)https://leetcode.cn/problems/implement-queue-using-stacks/
622. 设计循环队列 - 力扣(Leetcode)https://leetcode.cn/problems/design-circular-queue/