Javatpoint标志
Javatpoint标志

Q.编写程序,找出有n个键的可能二叉搜索树的总数。

解释

在这个程序中,我们需要找出可以用n个值构造的二叉搜索树的总数。下图显示了一个键值为3的可能的二叉搜索树。因此,我们总共可以构造五棵二叉搜索树。当我们选择节点1作为根节点时,我们得到了两棵树。同样,一棵树以2为根节点,两棵树以3为根节点。

这种方法包括递归地选择一个节点作为根节点,并创建可能的二叉搜索树。

一个简单的方法来计算可能的二叉搜索树的总数是通过加泰罗尼亚数:

程序查找的总数目可能的二叉搜索树与n个键

算法

  1. 定义Node类,它有三个属性,即data left和data right。这里,left表示节点的左子节点,right表示节点的右子节点。
  2. 当创建节点时,数据将传递给节点的data属性,并且left和right都将被设置为null。
  3. 定义另一个具有属性根的类。
    1. 表示树的根节点并将其初始化为null。
  4. numOfBST()将找出给定键的所有可能的二叉搜索树:
    1. 它将通过调用factorial()来计算给定键的加泰罗尼亚数字。
    2. 加泰罗尼亚数可以用公式计算:
      Cn = (2n)!/ n !* (n + 1) !
    3. Factorial()将计算给定数字的阶乘。

解决方案

Python

输出:

给定键的可能二叉搜索树的总数:42

C

输出:

给定键的可能二叉搜索树的总数:42

JAVA

输出:

给定键的可能二叉搜索树的总数:42

c#

输出:

给定键的可能二叉搜索树的总数:42

PHP

输出:

给定键的可能二叉搜索树的总数:42

下一个话题 项目列表





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map