当前位置:  首页>> 技术小册>> 数据结构与算法(下)

题目描述

用两个栈来实现一个队列,完成队列的 PushPop 操作。 队列中的元素为 int 类型。

解法

Push 操作,每次都存入 stack1

Pop 操作,每次从 stack2 取:

- stack2 栈不为空时,不能将 stack1 元素倒入;

- stack2 栈为空时,需要一次将 stack1 元素全部倒入。

  1. import java.util.Stack;
  2. /\*\*
  3. \* @author bingo
  4. \* @since 2018/10/28
  5. \*/
  6. public class Solution {
  7. Stack stack1 \= new Stack();
  8. Stack stack2 \= new Stack();
  9. public void push(int node) {
  10. stack1.push(node);
  11. }
  12. public int pop() {
  13. if (stack2.isEmpty()) {
  14. if (stack1.isEmpty()) {
  15. return \-1;
  16. }
  17. while (!stack1.isEmpty()) {
  18. stack2.push(stack1.pop());
  19. }
  20. }
  21. return stack2.pop();
  22. }
  23. }

### 测试用例

  1. 往空的队列里添加、删除元素;

  2. 往非空的队列添加、删除元素;

  3. 连续删除元素直至队列为空。


该分类下的相关小册推荐: