繁体   English   中英

访问树java中的各个节点

[英]Accessing individual nodes in a tree java

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

我试图通过在main方法中创建一个ExpTree对象来访问树数据,然后在我的预订方法中在print语句中编写'x.root'。 然而,这将返回'ExpTree.OperatorNode@7637f22'。 理想情况下,我希望它会返回树中的一些值。

我是java中的树的初学者,所以如果有人可以解释我在这里需要做什么就会很棒!

谢谢

编辑 - 如果不清楚,我要问的是我希望能够使用preorder遍历来命令提供给方法'preorder'的Exp树。 此方法的输出应为字符串。

问题是我不知道如何访问ExpTree的潜在部分,所以我无法订购它们。

您的leafNode中不需要char expression leafNode可以只是整数,OperatorNode有叶子节点(整数)和表达式char。

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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM