我需要执行三元树的前序遍历。我熟悉二叉树上的遍历,例如:
public void preorder(){
System.out.println(data);
if (left != null)
left.preorder();
if (right != null)
right.preorder();
}
按照Root,Left,Right的顺序遍历。我很困惑如何在添加中间子节点的情况下执行此操作。如果有人能解释这将是伟大的。感谢
答案 0 :(得分:0)
n-ary树的一般前序遍历如下:
二叉树碰巧只有子 0 (左)和子 1 (右),但三元树也有一个中间。所以你的遍历在遍历左子树和右子树之间会有一个额外的声明:
if (middle != null)
middle.preorder();
答案 1 :(得分:0)
遍历左右节点之间的中间节点
public void preOrder(Node node) {
if (node == null) {
return;
}
System.out.print(" " + node.data);
preOrder(node.left);
preOrder(node.middle);
preOrder(node.right);
}