Java 字符串数组(树)

Java 字符串数组(树),java,Java,假设我们有5个字符串数组: String[] array1 = {"hello", "i", "cat"}; String[] array2 = {"hello", "i", "am"}; String[] array3 = {"hello", "James"};' String[] array4 = {"hello", "i", "bob"}; String[] array5 = {"hello", "mike", "wasup"}; 我如何创建一个树,其中“hello”始终是根,第二个元素

假设我们有5个字符串数组:

String[] array1 = {"hello", "i", "cat"};
String[] array2 = {"hello", "i", "am"};
String[] array3 = {"hello", "James"};'
String[] array4 = {"hello", "i", "bob"};
String[] array5 = {"hello", "mike", "wasup"};
我如何创建一个树,其中“hello”始终是根,第二个元素是根的子元素,其他元素成为子根的子元素。(每个节点可以有0-n个节点子节点)

例如:

           hello
        /   \    \
      i    james   mike
    / \ \           /
  cat  am bob    wasup
上面的图表是我想要的一种树。
请不要写任何代码。我想了解这个概念。解释你作为程序员的方法。

我会使用树结构,然后对填充树的每个数组进行迭代。 Root=你好

然后,对于数组的每个部分,检查该单词的叶子

  • 如果它不包含您的单词,则创建一个关键字为current word的新叶
然后我在树上走下去,在数组中向前移动

执行此操作直到阵列结束


定义一个节点类。创建映射,其中键是这些数组中的字符串,值是节点。迭代数组检查该值是否有已创建的节点,如果没有,则创建一个。然后检查上一个值并将您的节点添加到该值关联的节点。

这是一个树,其中的单词可以紧跟在给定的单词之后

因此,应该有一个人工词根,因为可能会有一些句子中除了“hello”之外的其他单词

将所有这些句子(array1,…)本身放入一个数组(或集合或数据库)。这样你就可以从他们身上走过去;我可以认为它们是不可接受的

有一个部分树,最初为空,只包含根

然后循环直到所有单词都在树中,寻找新单词添加到allready present单词中。 对于每个句子,将第一个单词放在词根下(词根已经存在)。 对于其他每个单词,如果前一个单词在树中,则将该单词放在前一个树下



正如您所看到的,一个简单的方法(遵循上面的内容)将需要在稳定的固定数据上跳过很多。当然,可以将word映射到包含其所有后续节点的树节点,然后算法变得非常简单。

创建一棵树,遍历每个数组,遍历节点,并根据需要创建新的节点。我的想法是一样的,但是如何引用不同的节点?我已经学习了二叉树,其中有两个引用,左引用和右引用,但在这种情况下,我无法理解如何完成这项工作。每个节点都应该有一个子节点列表/数组。我想我明白了,如果我错了,谢谢纠正我,对于二叉树,你应该有一个左引用和右引用,由于每个节点可能有0-n个节点,您将如何引用不同的节点?没有听说过Composite,但我肯定会看看它。我相信我不懂英语是这里的问题。谢谢你的建议。