用两个栈来实现队列

题目要求:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型

众所周知,栈使一种后进先出的数据结构,而队列是一种先进先出的数据结构,刚好题目要求用两个栈来实现,我们来想想,当push的时候,把记录全部push到stack1中,当要pop的时候,我们先把stack1中的所有记录pop出来,然后再push到stack2中,这样stack2中最上面的那条记录不就是之前最先进入栈的么,然后把它pop出来就万事大吉嘛。当然pop出来之后不要忘记把剩下的数据重新push回到stack1中。

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
        stack1.push(node);
    }
    
    public int pop() {
        while(!(stack1.empty())){
            stack2.push(stack1.pop());
        }
        int value = stack2.pop();
        while(!(stack2.empty())){
            stack1.push(stack2.pop());
        }
        return value;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,676评论 25 709
  • 一、栈 1.1 栈的实现 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。java没有栈这样的数据结...
    yjaal阅读 1,477评论 0 1
  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 1,574评论 0 5
  • 1.栈 1.1.栈的定义 栈(stack)是限定仅在表尾(栈顶 top)进行插入和删除操作的后进先出的线性表。 p...
    JonyFang阅读 1,446评论 0 21
  • 自古多情伤离别,去年此时,我在写一个关于离别的剧本,今年此刻,我试着体验多重离别中的人、和感受。想到多情,是因为虽...
    月冉耳阅读 754评论 0 1