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条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料