[英]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.