相关疑难解决方法(0)

使用"N"个节点,可以使用多少个不同的二进制和二进制搜索树?

对于二叉树:没有必要考虑树节点值,我只对具有'N'节点的不同树拓扑感兴趣.

对于二进制搜索树:我们必须考虑树节点值.

tree binary-tree catalan

68
推荐指数
7
解决办法
14万
查看次数

生成从 1 到 n 的所有二叉搜索树

我遇到了以下问题:

给定一个正整数 n,生成节点为 1, 2, ..., n 的所有二叉搜索树。

例如,给定 3,可得到:

                                   在此输入图像描述

我正在做以下事情:

Generate all the permutations of the sequence (1, 2, ..., n).
For each permutation p:
    Create a tree t.
    For each number n in p:
        Insert n into t.
    If t has not yet been generated, keep it. <-- Expensive Operation
Run Code Online (Sandbox Code Playgroud)

然而,这种方法很慢,因为会生成重复的树(对于 n = 3,(2,1,3) 和 (2,3,1) 生成相同的树),并且我需要确保它们不被保留。有人会指出我有更快的方法吗?

algorithm

2
推荐指数
1
解决办法
3168
查看次数

标签 统计

algorithm ×1

binary-tree ×1

catalan ×1

tree ×1