练习题

使用两个队列模拟堆栈结构

2020-07-10  本文已影响0人  老奶猹

两个队列模拟一个堆栈,队列是先进先出,而堆栈是先进后出。模拟如下
队列a和b
(1)入栈:a队列为空,b为空。例:则将”a,b,c,d,e”需要入栈的元素先放a中,a进栈为”a,b,c,d,e”
(2)出栈:a队列目前的元素为”a,b,c,,d,e”。将a队列依次加入Arraylist集合a中。以倒序的方法,将a中的集
合取出,放入b队列中,再将b队列出列。代码如下:

class  
{
   public static void main(String[] args) 
   {
       Queue<String> q1 = new LinkedList<String>(); //a队列
       Queue<String> q2 = new LinkedList<String>();//b队列
       ArrayList<String> a = new ArrayList<String>();//arrayList是中间参数
       //往队列q1中存储元素
       q1.offer("a");
       q1.offer("b");
       q1.offer("c");
       q1.offer("d");
       q1.offer("e");

       //将q1队列中的元素存储进list集合中
       for(String q : q1){
           a.add(q);
           System.out.println(q);
       }
       //以倒序的方法取出a中依次加入的元素
       for(int i=a.size()-1;i>=0;i--){
            q2.offer(a.get(i));
       }
       //打印出栈队列
       System.out.println("出栈:");
       for(String q : q2){
            System.out.print(q);
       }
   }
}
打印结果为(遵循栈模式先进后出): 
进栈:a b c d e  出栈:e d c b a
上一篇 下一篇

猜你喜欢

热点阅读