Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串的二叉搜索树_Java_Binary Tree_Binary Search Tree - Fatal编程技术网

Java 字符串的二叉搜索树

Java 字符串的二叉搜索树,java,binary-tree,binary-search-tree,Java,Binary Tree,Binary Search Tree,我有一个关于字符串的二叉搜索树是如何工作的问题。我知道并已通过检查新数据是否更新2来实现整数的二元搜索树,以构建二元决策树: 二叉决策树可以被认为是一组问题,这些问题产生了关于叶节点方面的布尔响应——方面要么存在/保持为真,要么不存在。也就是说,对于特定节点/边缘的每个后代,我们必须能够说“这个问题/答案成立”(答案可以是“真”或“假”)。例如,树皮是(正常)狗的一个侧面,但触角不是鲸鱼的一个侧面。在呈现的树中,假边总是指向左子树:这是一种避免使用真/假或Y/N标记每条边的约定 这棵树只能从现有

我有一个关于字符串的二叉搜索树是如何工作的问题。我知道并已通过检查新数据是否更新2来实现整数的二元搜索树,以构建二元决策树:

二叉决策树可以被认为是一组问题,这些问题产生了关于叶节点方面的布尔响应——方面要么存在/保持为真,要么不存在。也就是说,对于特定节点/边缘的每个后代,我们必须能够说“这个问题/答案成立”(答案可以是“真”或“假”)。例如,树皮是(正常)狗的一个侧面,但触角不是鲸鱼的一个侧面。在呈现的树中,假边总是指向左子树:这是一种避免使用真/假或Y/N标记每条边的约定

这棵树只能从现有的/外部的知识中建立,这些知识允许我们回答每种动物的每一个问题

以下是可用于构建此类树的粗略算法:

  • 从一组可能的动物开始,称之为a,一组问题,称之为Q
  • 从q中选择一个问题q,其中count(真(a中的q,a))与count(假(a中的q,a))最接近-如果生成的树是一个平衡二叉树,那么对于要问的最佳问题,这些计数将始终相等
  • 从q中删除q,并将其用作询问当前节点的问题。将所有False(q,a)放入左侧子节点可用的动物集(a'),将所有True(q,a)放入右侧子节点可用的动物集(a')
  • 在每个边/分支之后(假=左,真=右),从剩余的Q中选择一个合适的问题并重复(根据需要,使用“或”表示a)
  • (当然,在网上可以找到更多完整/详细/准确的资源,更不用说在大多数大学校园里有合适的书籍选择了。)


    更新,对于[二进制]:

    在这种特殊情况下(添加的图表清楚显示了这一点),图表基于问题的“是”或“否”回答,表示节点之间的边缘。也就是说,树不是使用字符串值本身的顺序构建的。在这种情况下,尽管如果允许非二进制响应,每个节点可能有更多的边/子节点,但左分支始终为“false”,右分支始终为“true”可能是有意义的

    决策树必须是。也就是说,图表必须首先基于问题/回答构建,这与仅基于节点之间排序的BST不同。最初的图形构建不能仅仅从一系列问题中完成,因为边不遵循内在的顺序


    初始响应,对于:

    与整数相同:算法不变

    考虑一个函数,
    compareTo(a,b)
    ,它将分别为ab返回-1、0或1

    然后考虑在用这个契约实现一个函数时,无论是NOR B还是B类的类型(只要它们是相同的),如果这种类型支持排序:它将是整数的“原始”,并使用主机语言对字符串类型的对应字符串比较。

    更新2,以构建二进制决策树:

    二叉决策树可以被认为是一组问题,这些问题产生了关于叶节点方面的布尔响应——方面要么存在/保持为真,要么不存在。也就是说,对于特定节点/边缘的每个后代,我们必须能够说“这个问题/答案成立”(答案可以是“真”或“假”)。例如,树皮是(正常)狗的一个侧面,但触角不是鲸鱼的一个侧面。在呈现的树中,假边总是指向左子树:这是一种避免使用真/假或Y/N标记每条边的约定

    这棵树只能从现有的/外部的知识中建立,这些知识允许我们回答每种动物的每一个问题

    以下是可用于构建此类树的粗略算法:

  • 从一组可能的动物开始,称之为a,一组问题,称之为Q
  • 从q中选择一个问题q,其中count(真(a中的q,a))与count(假(a中的q,a))最接近-如果生成的树是一个平衡二叉树,那么对于要问的最佳问题,这些计数将始终相等
  • 从q中删除q,并将其用作询问当前节点的问题。将所有False(q,a)放入左侧子节点可用的动物集(a'),将所有True(q,a)放入右侧子节点可用的动物集(a')
  • 在每个边/分支之后(假=左,真=右),从剩余的Q中选择一个合适的问题并重复(根据需要,使用“或”表示a)
  • (当然,在网上可以找到更多完整/详细/准确的资源,更不用说在大多数大学校园里有合适的书籍选择了。)


    更新,对于[二进制]:

    在这种特殊情况下(添加的图表清楚显示了这一点),图表基于问题的“是”或“否”回答,表示节点之间的边缘。也就是说,树不是使用字符串值本身的顺序构建的。在这种情况下,尽管如果允许非二进制响应,每个节点可能有更多的边/子节点,但左分支始终为“false”,右分支始终为“true”可能是有意义的

    决策树必须是。也就是说,图表必须首先基于问题/回答构建,这与仅基于节点之间排序的BST不同。最初的图形构建不能仅仅从一系列问题中完成,因为边不遵循内在的顺序


    初始响应,对于:

    与整数相同:算法不变

    考虑一个函数,
    compareTo(a,b)
    ,它将分别为ab返回-1、0或1

    然后考虑T

                                            land animal?            
                       have tentacles?------------^-------------indoor animal
              have claws?-----^----jellyfish    live in jungle?----^----does it bark?      
    eat plankton?----^----lobster             bear----^----lion        cat----^----dog
    shark----^----whale