Я создал двоичное дерево поиска, и я могу добавлять и удалять его, но когда я пытаюсь использовать метод getInorderIterator и распечатать дерево, оно выводит «TreePackage.BinaryTree$InorderIterator@2e817b38»
возможноя просто вызываю метод неправильным способом?
Вот как я распечатываю его в своем основном классе:
System.out.println("In-order: " + tree.getInorderIterator());
Это моя реализация getInorderIterator ():
public Iterator<T> getInorderIterator()
{
return new InorderIterator();
}
private class InorderIterator implements Iterator<T>
{
private StackInterface<BinaryNode<T>> nodeStack;
private BinaryNode<T> currentNode;
public InorderIterator()
{
nodeStack = new LinkedStack<>();
currentNode = root;
}
public boolean hasNext()
{
return !nodeStack.isEmpty() || (currentNode != null);
}
public T next() {
BinaryNode<T> nextNode = null;
while (currentNode != null) {
nodeStack.push(currentNode);
currentNode = currentNode.getLeftChild();
}
if (!nodeStack.isEmpty()) {
nextNode = nodeStack.pop();
assert nextNode != null;
currentNode = nextNode.getRightChild();
} else
throw new NoSuchElementException();
return nextNode.getData();
}
public void remove()
{
throw new UnsupportedOperationException();
}
}