部分原因是我必须实现二叉树的中序遍历的非递归方法。我有点卡住了。这是我到目前为止所拥有的:
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