数据结构 (五)树之五花八门篇

本文详细介绍了二叉树的各种类型,包括普通二叉树、满二叉树、有序二叉树、平衡二叉树、红黑树、线索二叉树、平衡二叉搜索树、完全二叉树等,以及它们的特性与性质,如叶子结点分布、结点数量计算公式、高度计算等。

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

普通二叉树:对二叉树的结点没有位置及数量上的要求

满二叉树: 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。

有序二叉树(又称二叉排序树,又称二叉查找树,亦称二叉搜索树):左子树的所有结点都比双亲小,右子树的所有结点都比双亲大

平衡二叉树:左右高度相差不超过1的有序二叉树  (首先是有序的二叉树,树的左右子树的高度相差不超过1,并且子树的子树都满足这个要求) 

红黑树:实现平衡的一种手段   结点只有两种颜色:红和黑; 根节点是黑色;从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

线索二叉树 :在二叉树的结点上加上线索的二叉树

平衡二叉搜索树:平衡二叉树和二叉搜索树的结合的结合

完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

完全二叉树的特点:

1.叶子结点在层次最大的两层出现;

2.满二叉树是完全二叉树,完全二叉树不一定是满二叉树

3.在完全二叉树中,若某个结点没有左孩子,则它一定没有右孩子,即该结点必是叶结点。

4.完全二叉树中,度为1的节点只能是1或者0个

完全二叉树的性质:

1.n个结点的完全二叉树的深度为大于以2为底n+1的对数的最小整数(>log2(n+1)的最小整数)。

2.将完全二叉树自顶而下,同一层自左向右编号,则有:

如果i=1,i为根,无双亲;如果i>1,双亲为结点 i/2

如果2i<=n,结点i的左孩子为结点2i;否则无左孩子

如果2i+1<=n,结点i的右孩子为结点2i+1,否则无右孩子

结点i所在的层次为log2n+1

i为奇数,且i!=1,i处于右兄弟的位置,它的左兄弟为结点i-1

i为偶数,且i!=n,i处于左兄弟的位置,它的右兄弟为结点i+1

3.2^(k-1) 或 pow(2,k-1)  算k层结点数

4.一棵有124个叶结点的完全二叉树,最多有248个结点   (248=124+123+1)

 

具有n个结点的不同二叉树有多少树形?

与用栈得出的从1到n的数字有多少不同的排列具有相同的结论:C(2n,n)/(n+1) (C(2n,n)表示2n里取n)

 

设n个数出栈方式数量为f(n)
因为入栈的顺序是确定的,下标记为1,2,3,...n
设最后一个出栈的是第k个数,则说明k之前的k-1个数先完成进栈出栈,有f(k-1)种方式;

然后k之后的n-k个数再完成进栈出栈,有f(n-k)种方式;最后第k个数出栈。
这时就有f(k-1)*f(n-k)种方式
而每一个数都有可能是最后出栈的

所以有f(n)=f(0)*f(n-1)+f(1)*f(n-2)+...+f(k-1)*f(n-k)+...+f(n-1)*f(0)
上面f(0)=1是为了写成统一式:f(n)=f(k-1)*f(n-k)
由上式的通项就是卡特兰数f(n)=C(2n,n)/(n+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值