【发布时间】:2016-04-22 22:46:37
【问题描述】:
我正在尝试使用递归方法在二叉树上编写一个前序遍历算法。这是我所拥有的:
void traverse(BT t) {
if (t == null){
return;
}
System.out.print(t);
traverse(t.left);
traverse(t.right);
}
由于某种原因无法编译。我认为问题出在我的其余代码上。完整代码如下:
class ZOrep extends TreeAndRepresentation {
private int k;
ZOrep left;
ZOrep right;
ZOrep( int m, int[] b ) { // given sequence build tree
super( m, b );
N = (M-1)/2;
k = -1;
t = build();
}
ZOrep( int n, BT t ) { // given tree build sequence
super(n, t);
t = build();
traverse( t );
}
BT build() {
return(a[++k] == 0 ? null : new BT( build(), build() ));
}
void traverse(BT t) {
if (t == null){
return;
}
System.out.print(t);
traverse(t.left);
traverse(t.right);
}
}
在构建树时(使用我的 ZOrep 方法),我感觉自己遗漏了一些东西。这里还有 BT 类:
class BT {
BT L; BT R;
BT( BT l, BT r ) { L = l; R = r; }
}
目前我的编译器说它找不到 t.left 和 t.right 的符号。
【问题讨论】:
标签: java algorithm compiler-errors binary-tree traversal