二叉树在节点中插入值。 Java的

时间:2014-10-25 09:30:33

标签: java algorithm tree binary-tree

我必须使用二叉树制作这个算术表达式的模型。表达式 a + b * c-b

enter image description here

这是我在Java中的树模型

enum NodeType { NUMBER, OPERATOR }   // Possible kinds of node.

class ExpNode {  // A node in an expression tree.

    NodeType kind;  // Which type of node is this?
    double number;  // The value in a node of type NUMBER.
    char op;        // The operator in a node of type OPERATOR.
    ExpNode left;   // Pointers to subtrees,
    ExpNode right;  //     in a node of type OPERATOR.

    ExpNode( double val ) {
          // Constructor for making a node of type NUMBER.
       kind = NodeType.NUMBER;
       number = val;
    }

    ExpNode( char op, ExpNode left, ExpNode right ) {
          // Constructor for making a node of type OPERATOR.
       kind = NodeType.OPERATOR;
       this.op = op;
       this.left = left;
       this.right = right;
    }
 }

我不知道如何实现插入方法来添加节点。之后,我将不得不在控制台中打印树并更改节点以使此表达式(a + b)* c-b 请帮助我,我在Java中不够强大

1 个答案:

答案 0 :(得分:1)

首先,您需要跟踪root

ExpNode root = new ExpNode(op, null, null);

要插入,您需要找到指向left的{​​{1}}或right的节点。然后创建一个新节点并安排指针。

让您入门的示例:

null

这段代码将开始使用。玩它,直到你理解它,然后你可以调整它来解决你的功课。你应该注意到树的左侧有一些特别的骚扰。