设计一个算法,利用一个整数栈将一个整数队列中的所有元素倒过来,队头变队尾,队尾变队头
输出结果:
package kyq;
import java.util.LinkedList;
// 队头出栈
class Stack {
// 实例化一个链表
LinkedList linkedList = new LinkedList<Object> ();
// 初始位置或第一个位置插入对象
public void push(Object object) {
linkedList.addFirst(object);
}
// 判断字符串是否为空
public boolean isEmpty() {
return linkedList.isEmpty();
}
// 弹栈
public Object pop() {
if (!linkedList.isEmpty()) return linkedList.removeFirst();
return "栈为空";
}
}
// 队尾出栈跟Stack类一样
class Queue {
LinkedList linkedList = new LinkedList();
public void put(Object o) {
linkedList.addLast(o);
}
public Object get() {
if (!linkedList.isEmpty()) return linkedList.removeFirst();
return "";
}
public boolean isEmpty() {
return linkedList.isEmpty();
}
}
class Going {
public static void main(String[] args) {
Stack stack = new Stack();
Queue queue = new Queue();
queue.put(10);
queue.put(9);
queue.put(8);
queue.put(7);
queue.put(6);
queue.put(5);
queue.put(4);
queue.put(3);
queue.put(2);
queue.put(1);
queue.put(0);
// 两个循环遍历队头队尾
while (!queue.isEmpty()) {
stack.push(queue.get());
}
while (!stack.isEmpty()) {
queue.put(stack.pop());
}
while (!queue.isEmpty()) {
System.out.print(queue.get() + " ");
}
}
}