三层四层二叉树有多少种

rt,

三层四层二叉树有多少种,延伸下就是问题:二叉树不同层数的有多少种?

0层的二叉树有1种;a0 <wbr><wbr>= <wbr><wbr>1; <wbr><wbr><br><wbr><wbr>一层的二叉树有1种;a1 <wbr><wbr>= <wbr><wbr>1; <wbr><wbr><br><wbr><wbr>二层的二叉树有3种;a2 <wbr><wbr>= <wbr><wbr>2*(a0*a1)+a1*a1 <wbr><wbr>= <wbr><wbr>3; <wbr><wbr><br><wbr><wbr>三层的二叉树有2*(a0*a2+a1*a2)+a2*a2 <wbr><wbr>= <wbr><wbr>21种; <wbr><wbr><br><wbr><wbr>四层的二叉树有2*(a0*a3+a1*a3+a2*a3)+a3*a3 <wbr><wbr>= <wbr><wbr>651种;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

C#

codes as below:

usingSystem;

namespaceCountTreeNumber

{

classProgram

{

staticvoidMain(string[]args)

{

for(inti=1;i<=5;i++)

{

Console.WriteLine(CountTreeHelper.CountTree(i));

}

Console.ReadKey();

}

}

classCountTreeHelper

{

publicstaticdoubleCountTree(doubledepth)

{

if(depth==1)

return1;

doublecount1=CountTree(depth-1);

doublecountPart1=2*count1;

doublecount2=0;

for(doublei=1;i<depth;i++)

{

count2+=CountTree(i);

}

doublecountPart2=count1*(count2)*2;

doubleduplcatedCountPart2=count1*count1;

returncountPart1+countPart2-duplcatedCountPart2;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值