将文本文件中的单词插入树(Java)

时间:2016-12-12 01:54:18

标签: java binary-search-tree

我需要将每个单词放在一个文本文件中并将它们添加到树中。 我的第一个问题是不知道如何使用Java中的文件,然后我需要能够插入单词,但如果有一个重复的单词,它会增加该单词的计数器,而不是再次插入单词。 这些是我的插入方法:

  public void insert(String txt)
  {
    this.root = insert(root, new Node(txt));
  }

  private Node insert(Node parent, Node newNode)
  {
    if (parent == null)
    {
      return newNode;
    }
    else if (newNode.data.compareTo(parent.data) > 0)
    {
      parent.right = insert(parent.right, newNode);
    }
    else if (newNode.data.compareTo(parent.data) < 0)
    {
      parent.left = insert(parent.left, newNode);
    }
    return parent;
  }

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以将名为count的实例变量添加到Node类,以便Node可以记住一段文字出现的次数。您需要让Node构造函数将count设置为1

然后,你可以做这样的事情(参见粗体部分,了解不同的做法):


    public void insert(String txt)
    {
      root = insert(root, new Node(txt));
    }

    private Node insert(Node parent, Node newNode)
    {
      if (parent == null)
      {
        return newNode;
      }

      final int comparison = newNode.data.compareTo(parent.data)
      if (comparison > 0)
      {
        parent.right = insert(parent.right, newNode);
      }
      else if (comparison < 0)
      {
        parent.left = insert(parent.left, newNode);
      }
      else { // If the new text matches the text of this node.
        parent.count++;
      }
      return parent;
    }