数据结构——树与二叉树学习笔记(一)


数据结构——树与二叉树,记录了与树相关的重要知识点,可作为查阅使用。


1. 树的基本概念

1.1 树的概念术语

结点、根、分支、子树、森林、前后驱、祖先、子孙、双亲、孩子、兄弟、结点的度、树的度、分支结点、叶子结点、层次、堂兄弟、深度、高度、树的高度(深度)、有(无)序树、路径、路径长度,m叉树。

1.2 树的基本性质

1)树中的结点数 = 所有结点的度数 + 1

2)度为m的树中第i层上至多有 m i − 1 m^{i-1} mi1个结点( i ≥ 1 i\geq 1 i1

3)高度为h的m叉树至多有 ( m h − 1 ) / ( m − 1 ) (m^h-1)/(m-1) (mh1)/(m1)个结点

当每个结点的度都为m的时候,利用等比数列 m h − 1 + m h − 2 + ⋯ + m + 1 m^{h-1}+m^{h-2}+\cdots +m+1 mh1+mh2++m+1求得的结果

4)具有n个结点的m叉树的最小高度为 [ l o g m ( n ( m − 1 ) + 1 ) ] [log_m(n(m-1)+1)] [logm(n(m1)+1)]

5)高度为h的m叉树至少有h个结点

6)高度为h,度为m的树至少有 h + m − 1 h+m-1 h+m1个结点

7)具有n个结点的m叉树的最小高度为 [ l o g m ( n ( m − 1 ) ) ] [log_m(n(m-1))] [logm(n(m1))]

​ 假设高度为h。若具有n个结点的m叉树高度最小,则每个结点的度都为m,由(3)可得,此时有 ( m h − 1 ) / ( m − 1 ) ) < n ≤ ( m h − 1 ) / ( m − 1 ) (m^{h-1})/(m-1))<n\leq (m^h-1)/(m-1) (mh1)/(m1))<n(mh1)/(m1)成立。对不等式进行变换后可得 h − 1 < l o g m ( n ( m − 1 ) ) ≤ h h-1<log_m(n(m-1))\leq h h1<logm(n(m1))h,对h向上取整即可得 ⌈ l o g m ( n ( m − 1 ) ) ⌉ \lceil log_m(n(m-1))\rceil logm(n(m1))

2. 二叉树的概念

2.1 几个特殊的二叉树

(1)满二叉树

即除叶子结点外其余结点的度均为2的二叉树。对满二叉树进行自上而下、自左向右进行编号,对编号为i的结点:

  • 若有双亲,则其双亲为 ⌊ i / 2 ⌋ \lfloor i/2\rfloor i/2
  • 若有左孩子,则左孩子为 2 i 2i 2i,若有右孩子,则为 2 i + 1 2i+1 2i+1

(2)完全二叉树

高度为h,结点为n且结点编号与高度为h的满二叉树一一对应的二叉树。按照满二叉树的方法对结点进行编号,对编号为i的结点:

  • i ≤ ⌊ n / 2 ⌋ i\leq \lfloor n/2 \rfloor in/2,则该结点为分支结点,否则为叶子结点。

因为完全二叉树与满二叉树的结点编号一一对应,则完全二叉树也具有满二叉树的编号规律。对于 i = n i=n i=n的结点,其双亲为最后一个有孩子的结点,即 ⌊ n / 2 ⌋ \lfloor n/2 \rfloor n/2,所有当 i > ⌊ n / 2 ⌋ i> \lfloor n/2 \rfloor i>n/2时的结点全为叶子结点。

  • 2 i ≤ n 2i\leq n 2in,则说明有左孩子;若 2 i + 1 ≤ n 2i+1\leq n 2i+1n,则说明有右孩子

由满二叉树的性质可知,若结点的左右孩子存在,则左孩子等于 2 i 2i 2i为左孩子,且

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值