美文网首页
java面试题-如何用栈实现一个队列

java面试题-如何用栈实现一个队列

作者: wervy | 来源:发表于2019-12-11 21:10 被阅读0次

    思路:栈是先进后出,队列就是先进先出,就是把第一个元素取出来。
    方法:准备两个栈,一个数据栈,一个数据栈,数据栈中存入了数据,然后把数据栈的数据依次放入辅助栈中,最后一个元素就是之前第一个放入数据栈的数据。

    public class Stack2Queue {
    
        public static void main(String[] args){
    
            Stack stack1 = new Stack();
            Stack stack2 = new Stack();
            stack1.add("11");
            stack1.add("22");
            stack1.add("33");
    
            while (stack1.size()>1){
    
                stack2.push(stack1.pop());
            }
    
            System.out.println(stack1.pop());
        }
    
    }
    
    

    同理也可以用队列来实现栈

    public class Queue2Stack {
    
        public static void main(String[] args){
    
    
            Queue queue1 = new LinkedList();
            Queue queue2 = new LinkedList();
    
            queue1.add("111");
            queue1.add("222");
            queue1.add("333");
    
            queue2.add(queue1.poll());
    
            String str = "";
            while (queue1.size()>1){
                queue2.add(queue1.poll());
            }
            if (queue1.size() == 1){
                str = (String) queue1.poll();
                while (queue2.size() > 0){
                    queue1.add(queue2.poll());
                }
            }
            System.out.println(str);
            System.out.println(queue1.toString());
        }
    }
    
    

    相关文章

      网友评论

          本文标题:java面试题-如何用栈实现一个队列

          本文链接:https://www.haomeiwen.com/subject/trmagctx.html