数据结构:已知结点数求二叉树的种类

博客介绍了计算二叉树种类的两种方法,一是使用公式(2n)!/(n!*(n+1)!),二是通过递推公式f(n)=f(n - 1)*f(0)+f(n - 2)*f(1)+···+f(1)*f(n - 2)+f(0)f(n - 1)。还给出具有3个结点的二叉树种类的例题及两种方法的解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构:已知结点求二叉树的种类数

方法一:(2n)!/(n!*(n+1)!)
(记忆好的小伙伴可以直接看公式)

方法二:0个节点的二叉树有1种,即f(0)=1;1个节点的二叉树有1种,即f(1)=1;2个节点的二叉树有2种,即f(2)=2;3个节点的二叉树肯定先得固定一个根节点,然后还剩2个节点,这两个节点有三种排列方式,根节点左边两个、根节点左边一个右边一个、根节点右边两个,这样的话就可以用f(0),f(1)和f(2)来求了:f(3)=f(2)f(0)+f(1)f(1)+f(0)f(2)=21+11+12=5;同理f(4)=f(3)f(0)+f(2)f(1)+f(1)f(2)+f(0)f(3)=51+21+12+15=14;于是就有了递推公式:f(n)=f(n-1)*f(0)+f(n-2)*f(1)+···+f(1)*f(n-2)+f(0)f(n-1)。

例题

按照二叉树的定义,具有3个结点的二叉树有多少种?
答案:5
解析:法一:(23)/(3!(3+1)!)=5
法二:f(3)=f(2)f(0)+f(1)f(1)+f(0)f(2)=21+11+12=5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值