关闭

剑指offer--用两个栈实现队列

标签: 牛客网在线编程剑指offer-java实现
473人阅读 评论(0) 收藏 举报
分类:

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

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() {
        if ( stack1.isEmpty() && stack2.isEmpty()){
            return 0;
        }
        if ( stack2.isEmpty()){
            while(!stack1.isEmpty()){
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}
0
0
查看评论

剑指offer--两个栈实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析:栈和队列的弹出序列是相反的这个两个数据结构的性质有关,一个是先进先出,一个是先进后出.所以如果用两个栈,相当于把数据的顺序倒了两次最后使得起顺序和队列一样,这是原理很简单,但是如何实现呢,这里需要注意的点...
  • yuwenhao07
  • yuwenhao07
  • 2017-05-04 16:13
  • 43

《剑指Offer--栈-队列》

用两个栈来实现队列:*栈的结构是先进后出,队列的结构是先进先出,那么可以用两个栈来实现一个队列的结构,先将一组元素(abcdef)压入到一个栈1中,再出栈压入栈2中(fedcba),就实现了队列的: 代码如下:*package t1; import java.util.LinkedList; i...
  • u012637437
  • u012637437
  • 2015-04-21 16:36
  • 241

剑指offer--面试题9:用两个栈实现队列

#include #include using namespace std; //***************数据结构******************* template class CQueue{ public: CQueue(void); ~CQueue(void); void...
  • u010726692
  • u010726692
  • 2017-07-05 21:22
  • 103

剑指offer--(5) 用两个栈实现队列

剑指offer–(5) 用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路描述: 1. 栈的工作过程为:先进后出;队列的工作过程为:先进先出; 2. 利用栈1进行入队操作,栈2进行出队操作 3. 当栈2为空时,将栈1中...
  • u012485480
  • u012485480
  • 2017-09-16 13:16
  • 62

Python :用两个栈实现队列

牛客网上的剑指 offer的在线编程: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 # -*- coding:utf-8 -*- class Solution: def __init__(self): self.st...
  • Lynette_bb
  • Lynette_bb
  • 2017-07-13 21:17
  • 742

两个栈实现队列+两个队列实现栈----java

两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好再栈顶,出栈;若要给队列添加元素,即先进sack1,要出队时,若stack2不为空就出栈,为空时就把...
  • u010093630
  • u010093630
  • 2014-08-08 00:52
  • 10076

剑指offer-->面试题7 用两个栈实现队列

下面是Queue.h #pragma once #include #include using namespace std; template class CQueue { public: CQueue(void); ~CQueue(void); void appendTa...
  • ljf913
  • ljf913
  • 2013-02-19 15:54
  • 366

剑指offer--面试题7: 用两个栈实现队列

 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 python实现: # -*- coding:utf-8 -*- class Solution:     def __init__(self): &#...
  • qingyujean
  • qingyujean
  • 2016-09-26 13:33
  • 345

C++算法之 两个队列实现一个栈

题目:用两个队列实现一个栈 算法思路: 现有两个队列q1与q2,入栈:如果q1与q2都为空,那么我们选择q1入栈也就是入队列,比如q1入栈 1 2 3 4 ;现在要出栈,后进先出那么4要出栈。但是q1是一个 队列,先进先出,那么 1 2 3出队列 q2 1 2 3 入队列,q1中此时剩余4,把...
  • djb100316878
  • djb100316878
  • 2014-12-09 10:48
  • 9886

剑指offer--用两个栈实现队列

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 import java.util.Stack; public class Solution { Stack stack1 = new Stack(); Stack stack2 = ...
  • kangaroo835127729
  • kangaroo835127729
  • 2015-04-10 23:04
  • 589
    个人资料
    • 访问:155749次
    • 积分:4932
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:81条
    博客专栏
    最新评论