三叉树和最大堆 - 它在视觉上是如何工作的?

Ternary tree and max heap - How does it work visually?

我有一组数字要插入:(从左到右)

61, 49, 90, 76, 46, 1, 82, 44, 62 ,79

任何人都可以用树展示它的视觉效果吗,我在将 82 插入堆后无法理解。

61

61 49

90 49 61

90 49 61 76

90 49 61 76 46

90 49 61 76 46 1

90 82 61 76 46 1 49

90 82 61 76 46 1 49 44

90 82 62 76 46 1 49 44 61

90 82 79 76 46 1 49 44 61 62

在三元堆中,每个节点最多有三个子节点。堆在数组中以广度优先顺序表示,根节点为 0,节点 x 的子节点位于 (x*3)+1(x*3)+2(x*3)+3 位置。位置 x 处的节点位于 (x-1)/3.

因此,您的数组 [90,82,79,76,46,1,49,44,61,62] 在以简单方式显示时看起来像这样。

92
 |- 82
     |- 46
     |- 1
     |- 49
 |- 79
     |- 44
     |- 61
     |- 62
 |--76

或者,更传统地说:

              92
        /      |     \
    82        79         76
  / | \      / | \
46  1 49   44 61 62

您可能会发现我对 d-ary heap 的讨论很有用。