繁体   English   中英

遍历AVL树

[英]Iterate through an AVL tree

我已经实现了一个AVL树,并且我想编写一个Iterator,可以按预定顺序进行搜索。 我有这样的代码和平,我总是在“ stack.push(current) ”中得到一个NullPointer, 却不知道为什么

@Override
public Iterator<E> iterator() {

    return new Iterator<E>(){
        Node current;
        int counter;
        Stack<Node> stack;

        public void iterator() {
            counter++;
            stack = new Stack<Node>();
            current = root;
            stack.empty();
        }
        @Override
        public boolean hasNext() {
            if(counter == count(root)) return false;
            else return true;
        }

        @Override
        public E next() {
            stack.push(current);
            counter++;
            if(current.left.value != null) return current.left.value;
            else return current.right.value;
        }

    };
}

在此先感谢:)

您的root对象从未被声明或实例化。 您正在设置current = root; 但在当前情况下, root是一无所有。

public void iterator() {
        counter++;
        stack = new Stack<Node>();
        current = root;
        stack.empty();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM