首页 文章

二叉搜索树是二进制最大堆的特例吗?

提问于
浏览
1

据我所知,在max-heap中,每个节点的值大于或等于它的所有子节点 . 这同样适用于二叉搜索树,但在此数据结构中,同一级别(兄弟)上的节点正确构造也很重要 .

这让我觉得二叉搜索树基本上是一个带有额外属性的最大堆 . 所以每个BST也是最大堆 . 我对吗?

3 回答

  • 1

    没有;在BST中,根不比左子树中的任何东西大,但不小于右边的任何东西 . 如你所说,最大堆中的根大于两个子树中的任何内容 . 所以你可以说BST有一个额外的属性,但是这个属性使它不是最大堆 .

  • 0

    没有 .

    • Structural Difference

    基本上,树和堆的结构不同 . 二叉搜索树仍然是树,因此任何节点都可以有少于2个子节点 . 但是最大堆仍然是堆,因此只有倒数第二级的节点可以少于2个子节点 .

    • Getting sorted list of Elements

    BST - > O(N)=以递归方式遍历 .

    Max Heap - > O(N Log N)=通过删除root中的最大值N次,每次操作需要O(Log N)时间

    • Parent-Children Relationship

    BST是一种树数据结构,它拥有父母与子女之间以及儿童之间的关系 . 但是,堆只拥有父和子之间的关系,而不是孩子之间的关系 .

    如果你需要比较,你可以认为 Binary max Heap as"Complete" Binary treenot complete BST! )的延伸, with each node having all children lesser than itself (如here所述)

  • 0

    二进制堆是二叉树的特例(但不是BINARY SEARCH树!),但不是相反 . 二进制堆是具有shape和heap属性的二叉树:它是一个COMPLETE树,除了最后一个之外,所有级别都完全填充,并且所有节点都大于(小于)或等于其子节点 .

相关问题