2-3个搜索树的文本表示

时间:2015-01-17 15:43:00

标签: algorithm tree

所以我失明并使用屏幕阅读器。我设法通过this了解二叉树的结构。在答案中使用二叉树的结构,我设法理解二叉搜索树和二进制堆以及如何对它们进行插入,搜索和其他操作。然而,当我开始研究2-3个搜索树时,我对它的外观完全感到困惑。假设二叉树的结构如下所示:

 //slashes are links
 root
/ \

左右

使用这种表示法,我理解在这棵树中递归插入,删除和搜索。

但是,当涉及到有三个节点和两个键的树时,我完全迷失了。我绝对不知道这棵树应该如何构建,但我认为它看起来像这样。

 //slashes are links
 root
/ \ /

离开右中间

我不确定这是否正确。我一直在阅读如何向其插入节点,但解释总是使用图像/图形,这是非常难以想象的。任何人都可以进一步解释这个吗?

2 个答案:

答案 0 :(得分:1)

有很多方法可以代表它。我建议你试试两个

  1. 不是通过键来表示节点,而是使用一对键,并显示三个链接:
  2.      d,q
        / | \
       a  g  z
    
    1. 使用水平链接显示“姐妹”节点;当一个节点有一个姐妹时,它只有一个孩子:
    2.  d - q
       |  / \
       a  g  z
      

答案 1 :(得分:1)

2-3棵树有点复杂。

树中的节点包含一个或两个键值,除了叶子外,还有两个或三个子节点[分别]。

因此,您可以将节点视为一个气泡,其中包含一个或两个值,两个或三个箭头指向下方。

使用您的符号,它将是

之一
    root
    /   \
left     right

    root
    / | \
left mid right

添加密钥,例如

     [a]
    /   \
[b,c]     [d]

     [a,b]
    /  |  \
[c] [d,e] [f,g]