gpt4 book ai didi

java - 访问树中的各个节点java

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:11 24 4
gpt4 key购买 nike

我正在创建一个类 ExpTree,其中包含一个生成预订输出并将其作为字符串返回的方法。到目前为止,我已经有了制作树的基本代码,但我不知道如何编写预排序方法。

我尝试通过在 main 方法中创建 ExpTree 对象来访问树数据,然后在我的预排序方法中在打印语句中写入“x.root”。然而,这将返回“ExpTree.OperatorNode@7637f22”。理想情况下,我希望它会返回树中的一些值。

我是java树的初学者,所以如果有人可以解释我在这里需要做什么,那就太好了!

谢谢

编辑 - 如果不清楚,我要问的是我希望能够使用预序遍历对提供给“预序”方法的 Exp 树进行排序。此方法的输出应为字符串。

问题是我不知道如何访问 ExpTree 的潜在部分,因此我无法对它们进行排序。

最佳答案

您的 leafNode 中不需要字符表达式。 leafNode 可以只是整数,而 OperatorNode 具有 leafNodes(整数)和表达式字符。

public static void main(String[] args)
{

ExpTree tree = new ExpTree('*', 1 , 2);
System.out.println(tree.preOrder());

}

//Class Exp Tree creates Expression Tree with method to generate pre order output.

package ExpTree;


public class ExpTree {

public Node root;

public ExpTree ( char x, int y, int z){

this.root = new OperatorNode(x, y, z);
}

public String preOrder (){

return root.preOrder();
}

}

abstract class Node {
public abstract String preOrder();
}

class OperatorNode extends Node {

char operator;
Node left;
Node right;

public OperatorNode(char x, int y, int z){

this.operator = x;
this.left = new leafNode (y);
this.right = new leafNode (z);
}

public String preOrder() {
return this.operator + this.left.preOrder() + this.right.preOrder();
}

}

class leafNode extends Node{
int value;

public leafNode(int x){
this.value = x;
}

public String preOrder() {
return Integer.toString(this.value);
}
}

关于java - 访问树中的各个节点java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42962823/

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