标签与未标记的二叉树?

时间:2015-04-16 08:05:44

标签: algorithm data-structures tree binary-tree catalan

这个Wolfram链接谈了一些关于'Labeled'二叉树的内容。那么还有一种叫做“未标记”的二叉树吗?两者的简明解释非常好。

为什么我要搜索这个?
我想回答这个问题:

  

我们给出了一组n个不同的元素和一个带有n个节点的未标记二叉树。我们可以用多少种方法使用给定的集合填充树,使其成为二叉搜索树?

现在,我知道给定n个节点的二叉树的数量是第n Catalan number,但现在我很困惑:这个公式适用于上述两种类型中的哪一种?

PS:引号中的问题的一些帮助也会非常好:)

2 个答案:

答案 0 :(得分:1)

二叉树可以为每个节点分配标签。对于具有n个节点的给定未标记二叉树,我们有n!分配标签的方法。 (考虑节点的有序遍历,我们想要映射到标签的排列1..n)

从上面我们可以看到第n个加泰罗尼亚数字给出了未标记的二叉树的数量。

以n = 3为例。我们有以下树木5树:

1. o      2. o       3.  o      4.  o   5. o 
    \         \         / \        /      / 
     o         o       o   o      o      o  
    /           \                /        \
   o             o              o          o

一般来说,这个数字由N-th Catalan Number.

的公式给出

要获得标记树的数量,您必须乘以n!因此,对于n = 3,我们总共有30棵树。基本上,对于上面五个未标记的BST中的每一个,我们创建!3 = 6个带标签的BST标记:

1: 1, 2, 3
2: 1, 3, 2
3: 2, 1, 3
4: 2, 3, 1
5: 3, 1, 2
6: 3, 2, 1

希望这有助于理解差异。

答案 1 :(得分:0)

嗯,据我所知,“未标记”意味着我们不知道这棵树的节点。 然后问题是我们有多少种方法将元素分配给节点,因此树将是二叉搜索树。

UPDATE:这意味着我们想要从N元素为每个节点设置值,因此我们不会破坏主二叉搜索树条件。这意味着在所有节点都有值之后,我们仍然有二叉树 - 任何节点中的密钥都大于该节点左侧子树中所有节点中的密钥,并且小于该节点右侧子节点中所有节点中的密钥。树。

Binary search tree on Wikipedia