【数据结构】6.1树的基本概念和二叉树基本性质

一.树的基本概念

什么是树?

树,即用一对多的关系来储存数据元素。

37401009129d44e28ba59f56c4a275e0.jpeg

当结点数为0时,即为一棵空树

相关术语

Degree of a node(结点的度):结点的子树个数;

Degree of a tree(树的度): 树的所有结点中的度的最大值;

Parent,Children,Siblings,Leaf(叶子结点),Depth(树的深度)


二.二叉树

什么是二叉树?

每个结点下最多有两棵子树,并且子树之间是有序的,即会分成左孩子和右孩子

4960d175c57a42caa99ab11fdd35edc0.jpeg

对于普通的树来说,上面两棵树是完全一致的,但是对于二叉树来说是不同的。


二叉树的性质

1.结点数和分支数的关系

e (边数) = n (节点数)- 1 

98f64393f6264cf6ac0393a829ad5dd3.jpeg

非常好理解,因为除了树根之外,每一个结点都会连着一条边

2.第i层的结点数

每一层结点数最小为1,最大为eq?2%5E%7Bi-1%7D

3.最大结点数

对于深度为n的树,最大结点总数为eq?2%5E%7Bn%7D-1 

这个直接中学知识等比数列求和公式一算就完事

4.度为0的结点数和度为2的结点数关系

对于非空树,n0 = n2+1

推导过程:

e = n - 1; (边数等于结点数减一)

e = 2n2 + n1; 

n = n0+ n1 + n2;

联立以上三式,即可解出n0 = n2 + 1


拓展:

对于度最大为3的树,度为0的结点数为多少?

e = n-1;

n= n0 + n1 + n2 + n3;

e = n1 + 2n2 + 3n3;

联立以上三式 解得n0 = n2 + 2n3 +1


可以归纳出规律:

n0 = eq?%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%28i-1%29*n_%7Bi%7D%20+%201


完全二叉树的特殊性质

完全二叉树和满二叉树的区别

  • 满二叉树(Full Binary Tree):每个节点要么是叶子节点,要么有两个子节点。换句话说,除了叶子节点外,每个节点都有两个子节点

  • 完全二叉树(Complete Binary Tree):除了最底层外,每层的节点都必须填满,并且最底层的节点尽可能地向左靠拢。即元素是,从上到下,从左到右,依次填充的。(注意这个依次,就是元素是按照1234..这样的顺序填充的)

 1.结点数为n的完全二叉树的深度为[eq?%5Clog_%7B2%7Dn ]+ 1

26382396cd6d484b8d47bf06e2c28bfe.jpeg

2.i结点的双亲,左右孩子结点

1c54d8992ba84214aa2d7220246a1b20.jpeg

对于第i个结点,比如说结点4,它的父母结点为2,它的左孩子为8,右孩子为9

可以归纳出,父母结点的序号为[i/2],左孩子的序号为2i,右孩子的序号为2i+1

 

3.度为1的结点个数

当结点数为偶数时,度为1的结点数为1;当结点数为奇数时,度为1的结点数就为0

 

4.叶子结点个数

结点中有[n/2]个结点为非叶子结点

叶子结点数为n-[n/2]

10ac7856338240ae876063bb54842943.jpeg


例题:

一棵完全二叉树结点数为234

(1)深度为?

(2)第7层和第8层有多少个结点

(3)叶子结点数,度为1和度为2的结点数各有多少?

 

 be31fb7928a3455a93f1ce8ce3f2b690.jpeg

当然最后一题还可以直接用234/2 = 117得到叶子结点个数 


总结: 

性质普通二叉树完全二叉树
1边数 = 结点数 - 1边数 = 结点数 - 1
2第i层上至多有 2^(i-1) 个结点第i层上至多有 2^(i−1)个结点
3深度为k的二叉树上最多有 2^k -1 个结点深度为k的二叉树上最多有2^k - 1个结点
4叶子结点数 n0 = n2  + 1叶子结点数 n0=n2+1
5无特定深度计算公式深度为 ⌊log⁡2(n)⌋+1
6无特定公式第i个结点:双亲为 ⌊i/2⌋,左孩子为 2i,右孩子为 2i+1
7无特定度数关系结点数为偶数时,只有一个度为1的结点;为奇数时,没有度为1的结点
8无特定叶子结点关系叶子结点数超过 ⌊n/2⌋

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因兹菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值