思路:栈是先进后出,队列就是先进先出,就是把第一个元素取出来。
方法:准备两个栈,一个数据栈,一个数据栈,数据栈中存入了数据,然后把数据栈的数据依次放入辅助栈中,最后一个元素就是之前第一个放入数据栈的数据。
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());
}
}
网友评论