我正尝试添加到字符串的BST,但似乎无法正确订购它们

问题描述 投票:0回答:1

所以基本上我正在尝试制作看起来像这样的树铝/ \鲍勃·卡罗尔/ \黛比·伊莱恩

我相信我现在订购的方式是

                      Al
                        \
                         Bob
                           \
                            Carol
                              \ 
                             Debby
                                 \
                                Elaine

这是我有atm的代码

BNode root;
  public lab6M(){
    root = null;
  }

  public boolean add(String s){
    root = add(s, root);
    return true;
  }
  private BNode add(String s, BNode b){
    if(b == null)
      b = new BNode(s);
    else if(b.value.compareTo(s) == 0)
      return b;
    else if(b.value.compareTo(s) > 0)
      b.left = add(s, b.left);
    else
      b.right = add(s, b.right);
    return b;
  }
java binary-search-tree add
1个回答
0
投票

尝试这样插入:

  private BNode add(String key, BNode node){
    if(node == null)
      return node = new BNode(key);
    int cmp = key.compareTo(node.value);
    else if(cmp == 0)
      node.value = key;
    else if(cmp < 0)
      node.left = add(key, node.left);
    else
      node.right = add(key, node.right);
    return node;
  }
© www.soinside.com 2019 - 2024. All rights reserved.