我正在嘗試使用遞歸方法在二叉樹上編寫預定義遍歷算法。這裏是我有什麼:如何在Java中進行預訂遍歷?
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的符號。