IMmicheal 2016-03-31 13:02 采纳率: 33.3%
浏览 1591
已采纳

java 用两个栈实现队列!

看到一个题,是说用栈实现队列的效果,我想的是用两个栈,栈1输出到栈2,再输出,大家帮我看一下,这个程序的最后输出怎么是[b,1],输入的3哪去了?
import java.util.Enumeration;
import java.util.Stack;

public class mockFIFO {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Stack stack = new Stack<>();
    Stack stack2 = new Stack<>();
    System.out.println("1,b,3.3,先让这三个元素入栈");
    stack.push(new Integer(1));
    stack.push("b");
    stack.push(new Integer(3));
    String s= new String("b");
    System.out.println("1的位置"+stack2.search(1));
    System.out.println("b的位置"+stack2.search("b"));    
    System.out.println("3位置"+stack2.search(3));

// System.out.println("1,b,3.3 三个元素出栈");
System.out.println("元素"+stack.pop()+"出栈");
printStack(stack,stack2); //显示栈中的所有元素
System.out.println("元素"+stack.pop()+"出栈");
printStack(stack,stack2); //显示栈中的所有元素
System.out.println("元素"+stack.pop()+"出栈");
printStack(stack,stack2); //显示栈中的所有元素
printStack(stack,stack2);

}

private static void printStack(Stack stack ,Stack stack2) {
    // TODO Auto-generated method stub
    if(stack2.size()<=0){
        while (!stack.isEmpty()){
        for(int i=0; i<stack.size();i++){
            stack2.push(stack.pop());
        }
        }
        System.out.println("栈1到栈2");
        System.out.println("栈1元素::"+stack);
        System.out.println("栈2元素::"+stack2);
    }
if(stack.size()==0){
    System.out.println("栈1空了");
}
if(stack2.size()==0){
    System.out.println("栈2空了");
}
    }
    }



    //以下是输出
    1,b,3.3,先让这三个元素入栈

1的位置-1
b的位置-1
3位置-1
元素3出栈
栈1到栈2
栈1元素::[]
栈2元素::[b, 1]
栈1空了

    谢谢大家!!!
  • 写回答

2条回答

  • threenewbee 2016-03-31 15:32
    关注
     System.out.println("元素"+stack.pop()+"出栈");
    这句话本身会让栈顶出栈
    换成
    System.out.println("元素"+stack.peek()+"出栈");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站