栈和队列
栈 和 队列非常常见
栈的主要特征是 先进后出
队列的主要特征是 先进先出
用两个栈实现队列
思路:
stack1: 1 2 3 4 (假设右边是栈顶)
stack2:
每一次遇到删除操作, 就把stack1 按照出栈的顺序加到stack2, 然后对stack2 进行出栈
stack1:
stack2: 4 3 2
如果遇到添加操作, 继续向stack1 进行入栈操作
用两个队列实现栈
思路:
queue1: 1 2 3 4 (假设左边是队列出口)
queue2:
遇到一个删除操作, 就对queue1 出队n - 1个元素 并加到queue2里面, 对queue1 的最后一个元素出队
queue1:
queue2: 1 2 3
此时若遇到添加操作就在queue2 进行