Data structures 偏序树与二叉树相同吗?

Data structures 偏序树与二叉树相同吗?,data-structures,tree,binary-tree,Data Structures,Tree,Binary Tree,我对偏序树的工作原理有点困惑。它们和二叉树的方式一样吗?还有,它的最佳用途是什么 例如,如果我在空树中插入5,6,4,9,3,1,7,我将得到: 5 / \ 4 6 / \ 3 9 / / 1 7 二叉树是树的一种特殊形状。具体来说,二叉树是一种树,其中每个节点可以有0、1或2个子节点。二叉树不限制节点中可以存储哪些值,也不限制这些值之间的关系,因此以下所有值都是有效的二叉树: 1

我对偏序树的工作原理有点困惑。它们和二叉树的方式一样吗?还有,它的最佳用途是什么

例如,如果我在空树中插入5,6,4,9,3,1,7,我将得到:

      5
     / \
    4   6
  /      \
 3       9
/       /
1      7

二叉树是树的一种特殊形状。具体来说,二叉树是一种树,其中每个节点可以有0、1或2个子节点。二叉树不限制节点中可以存储哪些值,也不限制这些值之间的关系,因此以下所有值都是有效的二叉树:

     1           4             9
    /           / \           / \
   3           2   6         3   6     
  / \         /     \       / \   \
 3   2       1       8     0   2   4 
偏序树是一种树,其中有一组特定的限制,限制值可以在树中的何处。具体来说,偏序树(顺便说一句,通常称为堆序树)是指每个节点的值都大于其每个子节点的所有值的树。(有时,您会将此属性视为要求每个节点的值小于其所有子节点的值;这在本质上是相同的)。但是,对于偏序树中每个节点可以有多少子节点没有限制-偏序属性表示值可以放在哪里,而不是树的形状。例如,以下是一些偏序树:

          4            9             3
         /|\          / \             \
        3 2 1        4   5             2
       / \          /|\   \             \
      0   2        3 3 3   3             1
前两棵树是偏序树,但不是二叉树,而最后一棵树是偏序树和二叉树

您询问了在哪里使用偏序树。许多著名和重要的数据结构——二进制堆、二项式堆、斐波那契堆等——都是作为偏序树的集合实现的,这些树具有额外的结构属性。这些可用于实现快速优先级队列,从而加速许多著名的算法,如Dijkstra的最短路径算法和Prim的最小生成树算法

请记住,偏序树与二进制搜索树不同。在最初的问题中,您展示了一个树的示例,该树是通过将一系列值插入一个空的二进制搜索树而形成的。虽然这是对的,但它完全独立于偏序树


希望这有帮助

二叉树是树的一种特殊形状。具体来说,二叉树是一种树,其中每个节点可以有0、1或2个子节点。二叉树不限制节点中可以存储哪些值,也不限制这些值之间的关系,因此以下所有值都是有效的二叉树:

     1           4             9
    /           / \           / \
   3           2   6         3   6     
  / \         /     \       / \   \
 3   2       1       8     0   2   4 
偏序树是一种树,其中有一组特定的限制,限制值可以在树中的何处。具体来说,偏序树(顺便说一句,通常称为堆序树)是指每个节点的值都大于其每个子节点的所有值的树。(有时,您会将此属性视为要求每个节点的值小于其所有子节点的值;这在本质上是相同的)。但是,对于偏序树中每个节点可以有多少子节点没有限制-偏序属性表示值可以放在哪里,而不是树的形状。例如,以下是一些偏序树:

          4            9             3
         /|\          / \             \
        3 2 1        4   5             2
       / \          /|\   \             \
      0   2        3 3 3   3             1
前两棵树是偏序树,但不是二叉树,而最后一棵树是偏序树和二叉树

您询问了在哪里使用偏序树。许多著名和重要的数据结构——二进制堆、二项式堆、斐波那契堆等——都是作为偏序树的集合实现的,这些树具有额外的结构属性。这些可用于实现快速优先级队列,从而加速许多著名的算法,如Dijkstra的最短路径算法和Prim的最小生成树算法

请记住,偏序树与二进制搜索树不同。在最初的问题中,您展示了一个树的示例,该树是通过将一系列值插入一个空的二进制搜索树而形成的。虽然这是对的,但它完全独立于偏序树


希望这有帮助

我不太清楚你的意思。A是一个分支因子为2的树,即每个节点有0-2个子节点。这里的树也是一棵二叉树

也许你指的是一个(也叫有序二叉树),这就是你所展示的

BSTs
按这些插入规则排序,从根开始:
1:如果插入的节点小于一个节点,请选中左子节点
2:如果插入的节点大于一个节点,请选中右子节点
3:如果找不到子节点,请在此处插入编号作为节点

示例
因此,对于您来说,第一项,5,将成为根。
然后6,大于5,将成为它的正确孩子。
4,越少,就会成为它的左撇子。
9大于5,所以向右看,看到6,仍然更大,成为6的正确孩子。 3同时小于5和4,因此它成为4的左子级。 1沿着相同的路径一直向下,并成为3的左子级。 最后,7大于5,因此它向右移动,大于6,因此它再次向右移动,但小于9,因此它成为左孩子

正如您所看到的,插入的顺序对于BST的结构非常重要

优势
BST的优点是,可以使用类似的方法对其进行搜索,以允许插入、查找和删除时间为O(logn),这非常好。因此,它们最好用于搜索时间很重要的情况,以及频繁插入的情况/