public classqueue2stack {public static voidmain(String[] args) {
QS qs= newQS();
qs.push("1");
qs.push("2");
qs.push("3");
System.out.println(qs.pop());
System.out.println(qs.pop());
System.out.println(qs.peek());
QS qs2= newQS();
qs2.push("1");
qs2.push("2");
qs2.push("3");
System.out.println(qs2.pop());
System.out.println(qs2.pop());
System.out.println(qs2.peek());
}static classQS{private Queue queueMain = newArrayDeque();private Queue queueWork = newArrayDeque();public booleanpush(Object object){try{
queueMain.offer(object);return true;
}catch(Exception e) {return false;
}
}public intsize() {returnqueueMain.size();
}publicObject pop(){if(queueMain.isEmpty()) {return null;
}
Queue temp= newArrayDeque();int size =queueMain.size();for (int i = 0; i < size - 1; i ++) {
temp.offer(queueMain.poll());
}
Object o=queueMain.poll();int size1 =temp.size();for (int i = 0; i < size1; i ++) {
queueMain.offer(temp.poll());
}returno;
}publicObject peek(){if(queueMain.isEmpty()) {return null;
}
Queue temp= newArrayDeque();int size =queueMain.size();for (int i = 0; i < size - 1; i ++) {
temp.offer(queueMain.poll());
}
Object o=queueMain.peek();
temp.offer(queueMain.poll());int size1 =temp.size();for (int i = 0; i < size1; i ++) {
queueMain.offer(temp.poll());
}returno;
}public booleanempty(){returnqueueMain.isEmpty();
}/**********优化***********/
public booleanpush2(Object object){try{if (queueMain.isEmpty() &&queueWork.isEmpty()) {
queueMain.offer(object);
}if(queueMain.isEmpty()) {
queueWork.offer(object);
}if(queueWork.isEmpty()) {
queueMain.offer(object);
}return true;
}catch(Exception e) {return false;
}
}publicObject pop2(){if(queueMain.isEmpty() &&queueWork.isEmpty()) {return null;
}if(queueMain.isEmpty()) {while (queueWork.size() > 1) {
queueMain.offer(queueWork.poll());
}returnqueueWork.poll();
}if(queueWork.isEmpty()) {while (queueMain.size() > 1) {
queueWork.offer(queueMain.poll());
}returnqueueMain.poll();
}return null;
}publicObject peek2(){if(queueMain.isEmpty() &&queueWork.isEmpty()) {return null;
}if(queueMain.isEmpty()) {while(queueWork.size() > 1) {
queueMain.offer(queueWork.poll());
}
Object e=queueWork.peek();
queueMain.offer(queueWork.poll());returne;
}if(queueWork.isEmpty()) {while(queueMain.size() > 1) {
queueWork.offer(queueMain.poll());
}
Object e=queueMain.peek();
queueWork.offer(queueMain.poll());returne;
}return null;
}
}
}