您好我正在尝试使用两个队列实现堆栈方法push(x)和pop()。我能够在方法本身中使用print语句测试我的方法,所以我知道方法工作正常,但我知道这是错误的编码实践。当我尝试在main中的for循环期间打印堆栈时,我已经查看了有关奇怪输出(@ 15db9742)的问题。 我见过的所有解决方案都是针对使用字符串的类,所以他们只是说要覆盖toString()方法来打印出你需要的东西,但我的push(x)方法不会返回任何内容,如果我选择返回int它显然不起作用。我见过的其他解决方案是尝试Arrays.toString(),但这些也不是数组。我研究的最后一个解决方案是实现Iterator,但我似乎无法推断出我自己使用的示例实现的方式。
public class Assignment1Question1B {
Queue q1 = new LinkedList();
Queue q2 = new LinkedList();
int front;
int n;
public class Node {
int x;
Node next;
}
public void push(int x) {
q1.add(x);
front = x;
n++;
}
public void pop() {
if (q1.size() == 0){
System.out.println("Stack is already empty.");
} else {
while (q1.size() != 1) {
q2.add(q1.remove());
}
q1.remove();
Queue empty = q1;
q1 = q2;
q2 = empty;
n--;
}
}
public static void main(String[] args) {
Assignment1Question1B stack = new Assignment1Question1B();
for (int i = 0; i < 50; i++) {
stack.push(i);
System.out.println(stack);
}
}
}