先序序列为a、b、c、d的不同二叉树的个数是多少(卡特兰数)

除了逻辑清晰的挨个画出来之外,还有一种方法需要大家牢记!

因为前序序列和中序序列可以唯一地确定一棵二叉树,并且题目已经给出了先序序列,所以我们只需要知道由该先序序列可以确定多少个中序序列即可,确定多少个中序序列就是可以确定多少棵二叉树!

那么,问题来了,由一个先序序列如何确定有多少个中序序列呢?这就有两个“公式”需要大家去牢记了!

1、先序序列和中序序列的关系为:以先序序列入栈,则出栈序列必为中序序列。

 2、一个入栈顺序可以确定的出栈顺序为 C(2n,n) / (n+1)(卡特兰数)。

 所以答案就清楚了,如果以abcd的顺序入栈,将有14种出栈顺序,也就是可以确定14个中序序列,即可以确定14个不同的二叉树

全部评论

相关推荐

纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
11-11 16:40
已编辑
门头沟学院 人工智能
不知道怎么取名字_:这个有点不合理了,相当于已经毕业了,但还是没转正,这不就是白嫖
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务