堆叠不将物品推入集合

时间:2015-06-15 20:57:38

标签: java stack

我对该集合的实现如下:

    private void init(Node<K, E> root) {
        Node<K,E> node = root;

        while (node != null) {
            stack.push(node);
            node = node.getLeft();
        }
    }

然而,当它被调用和使用时,似乎堆栈中没有任何内容。我已经尝试过无穷无尽的调试,对我实现上述组件的方式可能出现什么问题有任何建议吗?

1 个答案:

答案 0 :(得分:3)

您已使Stack不可变。当您调用push()方法时,它实际上并不会将节点推送到堆栈,它会返回一个新的不可变Stack,并将该元素推送到它。在调用pushpop等所有修改方法时,在行上添加stack =以将新返回的堆栈分配回stack

E.g。取代

stack.push(node);

stack = stack.push(node);