社区
C语言
帖子详情
问:具有n个结点的二叉树有多少种形态 ?
木头呆但不傻
2003-11-10 11:30:41
如题,请给出思路或解题过程。
...全文
2391
9
打赏
收藏
问:具有n个结点的二叉树有多少种形态 ?
如题,请给出思路或解题过程。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
s7lx_hacker
2010-06-24
打赏
举报
回复
抱歉说错了。。。是堆栈问题。但是确实是catalan问题。
结果是C(2n,n)/(n+1)
s7lx_hacker
2010-06-24
打赏
举报
回复
二叉树其实是个堆栈问题
考虑n个元素进入或者弹出栈,想象其为某种遍历(先序遍历 中序 后续)
则有N!种结果。。
木头呆但不傻
2003-11-11
打赏
举报
回复
谢谢 ZhangYv(like ASM,抵制日货) (给我了一个方法)
mmlymlymly(mly) (给我另一种思路)
偶已想出来了 :)
根据二叉树的递归定义来求解
设Bn为所有结点数,显然B0=1,
对于n〉=1的情况,二叉树有1个根结点及n-1个非根结点,
而后者可分为两个子集,左子树和右子树分别为k个和n-k-1个结点
所以他们的结点数为分别为Bk和Bn-k-1个从而得知
Bn=Bn=B0*Bn-1+…+Bk*Bn-1-k 也即 ZhangYv(like ASM,抵制日货) 所提供的答案
结果为 Cantalan 数 C(n+1)= 2n!/ [n!*(n+1)!] (n=1,2,3……)
木头呆但不傻
2003-11-11
打赏
举报
回复
to knight0637(蛤蟆之侣)
那确实,组合数学都有 catalan 数 的公式,
但不是每本都有类似计算我这问题的例子。
darcymei
2003-11-10
打赏
举报
回复
从深度考虑,深度最高n最低log2n。然后考虑第二深度(用词不是很规范,不知道该怎么说),对于深度为n的来说,第二深度为0;深度n-1,则指只能为1....然后再是第三深度,第四....根据每种深度可能出现的深度梯队进行排列组合,就是该深度的形态数,再把所有深度的形态数加起来就得解。
knight0637
2003-11-10
打赏
举报
回复
组合数学上都有catalan数,1/(n+1)*(2n n)
木头呆但不傻
2003-11-10
打赏
举报
回复
to ZhangYv(like ASM,抵制日货) :
我手上有一本组合数学的书 曹汝成 编的 上面 讲 卡塔兰 数时没有讲到这个
能再给我具体讲讲,它是怎么和 T 路 对应 起来的吗?
to mmlymlymly(mly) :
你的思路我好像有点感觉,能给出你的具体式子吗?
谢谢大家,希望大家能讲得再透彻些:) (我可以再加100分)
ZhangYv
2003-11-10
打赏
举报
回复
一般书上给出的证明和你问的不一样.关于二叉树节点计数的总个数有:
| 1 [n = 0]
B(n) = |
| n-1
| ∑ B(i) * B(n-i-1) [n >= 1]
i=0
解以上递归式,可以得出组合个数为C(2*n,n)/(n+1),一个殊途同归的做法.
ZhangYv
2003-11-10
打赏
举报
回复
这是个经典的组合计数问题,答案是CATALAN数 = C(2*n,n)/(n+1).
得出这个结果的方法很多,组合数学书上一般都有,具体证明自己查书.
二叉树
的不同
形态
_
二叉树
的不同
形态
_
给定
二叉树
T(树深度H<=10,深度从1开始,
结点
个数N<1024,
结点
编号1~N)的层次遍历序列和中序遍历序列,输出T从左向右叶子
结点
以及
二叉树
先序和后序遍历序列。输入格式输入共三行:第一行是整数n,表示
二叉树
中的
结点
数目;第二行有n个整数,表示该
二叉树
的层次遍历序列;第三行也是n个整数,表示该
二叉树
的中序遍历序列。整数间以空格隔开。输出格式输出三行,分别是:从左向右的叶子
结点
,先序遍历序列,后序遍历序列。
结点
编号用空格隔开。
一
种
构建n个
结点
的
二叉树
所有
形态
的算法 (2012年)
给出了一
种
基于二叉排序树构建
具有
n个
结点
的
二叉树
所有不同
形态
的算法,该算法简单明了,易于理解和实现。
数据结构基础系列(6):树和
二叉树
数据结构课程是计算机类专业的专业基础...系列课程包含11个部分,本课为第6部分“树和
二叉树
”,介绍树的相关概念和表示方法,重点是二叉事的性质、存储结构、遍历等基本操作的实现,以及应用基本操作解决
问
题的方法。
数据结构 课后题答案(第3章)1
第三章3.1(1)n 个
结点
可构造出多少
种
不同
形态
的
二叉树
?解:当 n=1 时,只有 1 个根节点,则只能组成 1
种
形态
的
二叉树
,令 n 个节点可组成的
二叉树
数据结构与算法:树和
二叉树
.pptx
树和
二叉树
; 树和
二叉树
; 1 树的基本概念;2 树的基本术语 ⑴
结点
(node):一个数据元素及其若干指向其子树的分支。 ⑵
结点
的度(degree) 、树的度:
结点
所拥有的子树的个数称为
结点
的度。树中
结点
度的最大值称为树的度。 【练习】 下图(b)中各
结点
的度与树的度分别是多少? ;⑶ 叶子(left)
结点
、非叶子
结点
:树中度为0的
结点
称为叶子
结点
(或终端
结点
)。相对应地,度不为0的
结点
称为非叶子
结点
(或非终端
结点
或分支
结点
)。除根
结点
外,分支
结点
又称为内部
结点
。 如上图(b)中
结点
H、I、J、K、L、M、N是叶子
结点
,而所有其它
结点
都是分支
结点
。 ⑷ 孩子
结点
、双亲
结点
、兄弟
结点
一个
结点
的子树的根称为该
结点
的孩子
结点
(child)或子
结点
;相应地,该
结点
是其孩子
结点
的双亲
结点
(parent)或父
结点
。; 2
二叉树
;
二叉树
在树结构中起着非常重要的作用。因为
二叉树
结构简单,存储效率高,树的操作算法相对简单,且任何树都很容易转化成
二叉树
结构。上节中引入的有关树的术语也都适用于
二叉树
。 2.
二叉树
的基本
形态
二叉树
有5
种
基本
形态
,如图所示。; 2
二叉树
--
二叉树
的性质;1.满二叉
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章