logologo

如何用队列结构实现栈结构

Aug 16, 2023

本题有坑!注意理解题,题目没有要求,可以使用两个队列来实现栈

Java

public class TwoQueueStack<T> {
  public Queue<T> queue;
  public Queue<T> help;

  public TwoQueueStack() {
    queue = new LinkedList<>();
    help = new LinkedList<>();
  }

  public void push(T value) {
    queue.offer(value);
  }

  public T poll() {
    while (queue.size() > 1) {
      help.offer(queue.poll());
    }
    T ans = queue.poll();
    Queue<T> tmp = queue;
    queue = help;
    help = tmp;
    return ans;
  }

  public T peek() {
    while (queue.size() > 1) {
      help.offer(queue.poll());
    }
    T ans = queue.poll();
    help.offer(ans);
    Queue<T> tmp = queue;
    queue = help;
    help = tmp;
    return ans;
  }

  public boolean isEmpty() {
    return queue.isEmpty();
  }

}

C++Java
浙ICP备2021022773号    2022-PRESENT © ZhengKe