ツリーループ
1894 ワード
ツリーの遍歴:
再帰パス:
再帰的でない遍歴:
public class TreeNode {
public String key;
public String val;
public TreeNode left;
public TreeNode right;
}
再帰パス:
/** */
public static void iterativeInorder(TreeNode p) {
if (p != null){
iterativeInorder(p.left);
System.out.println(p.getVal());
iterativeInorder(p.right);
}
}
再帰的でない遍歴:
/** */
public static void iterativeInorder2(TreeNode p) {
Stack stack = new Stack();
TreeNode node = p;
while (node != null || stack.size() > 0) {
while (node != null) {
stack.push(node);
node = node.getLeft();
}
if (stack.size() > 0) {
node = stack.pop();
System.out.println(node.getVal());
node = node.getRight();
}
}
}