测试队列/堆栈时输出奇怪

时间:2018-04-06 17:46:13

标签: java stack queue output

您好我正在尝试使用两个队列实现堆栈方法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);
        }
    }
}

0 个答案:

没有答案