两个队列实现栈

来源:互联网 发布:nike高仿淘宝 编辑:程序博客网 时间:2024/05/20 06:25

本程序是利用两个单向队列实现栈(实际中是使用双向队列,但是只用了其单向性质)

import java.util.*;class StackbyQueue<T>{T x=null;private LinkedList<T> list1;private LinkedList<T> list2;private int size;public StackbyQueue(){size =0;list1 = new LinkedList<T>();list2 = new LinkedList<T>();}public void push(T x){list1.add(x);size++;}public T pop(){while(list1.size()>1){list2.add(list1.poll());}x = list1.poll();size--;while(!list2.isEmpty()){list1.add(list2.poll());}return x;}public String toString(){return list1.toString();}}public class scanner{public static void main(String args[]) {StackbyQueue<String> stack = new StackbyQueue<String>();stack.push("1");stack.push("2");stack.push("3");System.out.println(stack.toString());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.toString());stack.push("4");System.out.println(stack.toString());}}

结果如下:

[1, 2, 3]
3
2
[1]
[1, 4]
4

0 0
原创粉丝点击