Часть этого заключается в том, что я должен реализовать нерекурсивный метод обхода объекта в двоичном дереве. Я как бы застрял. Вот то, что я до сих пор:Исправление моей реализации алгоритма «обход дерева дерева» с помощью Stack
public void inorder(BinaryTree v) {
Stack<BinaryTree> stack = new Stack<BinaryTree>();
stack.push(v);
System.out.println(v.getValue());
while(!stack.isEmpty()) {
while(v.getLeft() != null) {
v = v.getLeft();
stack.push(v);
System.out.println(v.getValue());
}
while(v.getRight() != null) {
v = v.getRight();
stack.push(v);
System.out.println(v.getValue());
}
stack.pop();
}
}
я заметил, что она выводит только на левую сторону моего дерева, например,
A
/ \
B C
/ \/\
D E F G
/\
H I
/\
J K
дает A B D H J
Большое спасибо, комментарии помогли мне понять, как это работает еще больше :) – tenkii