gpt4 book ai didi

java - 如何在 Java 中进行预订遍历?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:59 25 4
gpt4 key购买 nike

我正在尝试使用递归方法在二叉树上编写预序遍历算法。这是我拥有的:

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 的符号。

最佳答案

当编译器说找不到符号时,这意味着您尝试引用的字段不存在。

查看你的类BT,这是正确的; BT 没有leftright,它有LR。因此,替换

traverse(t.left);
traverse(t.right);

traverse(t.L);
traverse(t.R);

将解决此问题。

关于java - 如何在 Java 中进行预订遍历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com