首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有重复密钥的BST数

具有重复密钥的BST数
EN

Stack Overflow用户
提问于 2015-11-22 12:51:56
回答 1查看 284关注 0票数 0

如果有n个顶点具有不同于加泰罗尼亚数给出的BST数目的不同键。但是,如果某些元素被复制,我们如何计算BST的数量?

我天真地认为,如果n之间有k个相等的元素,那么我们就应该在k上除以加泰罗尼亚数!(k元素的排列)。但是如果我们在最简单的例子(BST建立在1,1,1上)上检查它,我们就会意识到这是错误的想法。

那么,当我们计算BST的数量时,我们应该如何考虑重复的键呢?

问题中的BST是什么:二叉树,其中左子键小于根键,右子键所有键均衡器或等于根键。

EN

回答 1

Stack Overflow用户

发布于 2015-11-22 13:36:08

重复的键对不同树的数目没有任何影响。每棵树都有一个不同的形状,所以你甚至不需要钥匙来区分它们。你可以把钥匙全部移开,而树仍然是不同的。

用简单的例子试试: 1,1,1。您仍然可以用以下键创建5个不同的BST:

代码语言:javascript
运行
复制
    1      1      1      1      1  
   /      /      / \      \      \
  1      1      1   1      1      1
 /        \               /        \
1          1             1          1

为新的要求编辑:

如果左撇子必须严格地小于他们的父级,那么复制键就会形成一个链接列表,它的工作方式类似于一个节点,因为您不能在其中有任何左子节点。整个平等价值列表将只有一个形状,一个左子和一个右子:

代码语言:javascript
运行
复制
    1
   / \
  0   1
       \
        1
         \
          2

因此,在这种情况下,您只需减去重复键的数量。

对于具有M个重复的N个键,即N唯一的键,有一些加泰罗尼亚(N)的方法来建立树。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33854980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档