数据结构与算法:二叉树

本文详细介绍了树和二叉树的基本概念、性质、存储结构以及三种遍历方式(先序、中序和后序)。重点讨论了二叉树的特性,如结点度数限制、完全二叉树的计算方法,并通过实例题解析加深理解。
摘要由CSDN通过智能技术生成

1 概述

1.1 树

  • 树结构:是一种非常重要的 非线性结构,该结构中一个数据元素可以有两个或两个以上的直接后继元素,可以用来描述客观世界中广泛存在的层次关系。
  • 树结构示意图如下:

在这里插入图片描述

专业名词解释举例
根结点又称 开始结点,只有 1 个A
双亲结点当前结点的上一级结点B 是 E、F 的双亲结点
孩子结点当前结点的下一级结点B、C、D 是 A 的孩子结点
兄弟结点当前结点的同级结点B、C、D 互为兄弟结点
结点的度一个结点的子树的个数A 的度为 3,B 的度为 2,C 的度为 0,D 的度为 1
叶子结点又称 终端结点,指度为零的结点E、F、C、G 都是叶子结点
内部结点非 (根结点 和 叶子结点) 的其他结点B、D 都是内部结点
结点的层次根为第一层,根的孩子为第二层,以此类推A 在第一层,B、C、D 在第二层,E、F、G 在第三层
树的高度一棵树的最大层次记为树的高度(或深度)如上图所示,树的高度为 3

1.2 二叉树 和 树 的区别

二叉树
是否需要区分左子树和右子树×
是否限制结点的度最大为 2不限制

二叉树图示:
在这里插入图片描述

2 二叉树

2.1 性质

描述理解
性质1二叉树第 i i i 层( i ≥ 1 i \geq1 i1)上至多有 2 i − 1 2^{i-1} 2i1 个结点1,2,4,8,以此类推
性质2深度为 k k k 的二叉树至多有 2 k − 1 2^k -1 2k1 个结点( k ≥ 1 k \geq1 k1))根结点只有 1 个,其他至多 2 个 ,所以要减 1
性质3对任何一颗二叉树,若其终端结点树为 n 0 n_0 n0,度为 2 的结点数为 n 2 n_2 n2,则 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1终端结点(叶子结点)比 度为 2 的结点数多 1 个
性质4具有 n 个结点的 完全二叉树 的深度 ⌊ l o g 2 n ⌋ \lfloor log_2n \rfloor log2n + 1向下取整

完全二叉树:次序从左至右,结点不间断
在这里插入图片描述

2.2 存储结构

1)顺序存储结构:从上到下,从左到右
在这里插入图片描述

2)链式存储结构
在这里插入图片描述

2.3 遍历

2.3.1 先序遍历:DLR

  • 顺序: 根结点 D → 左结点 L → 右结点 R

在这里插入图片描述

2.3.2 中序遍历:LDR

  • 顺序: 左结点 → 根结点 → 右结点

在这里插入图片描述

2.3.3 后序遍历:LRD

  • 顺序: 左结点 → 右结点 → 根结点

在这里插入图片描述

3 扩展

3.1 常考题

【例题1】如果一颗二叉树有 10 个度为 2 的结点,5 个度为 1 的结点,那么度为 0 的结点个数为()?
A.15
B.11
C.9
D.0

参考答案:B
根据二叉树的性质 n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1,即:度为 0 的结点数 = 度为 2 的结点数 + 1

【例题2】若一颗二叉树的先序遍历序列为 EFHIGJK,中序遍历序列为 HFIEJKG,则该二叉树的根结点的右孩子为()
A.E
B.F
C.G
D.H

参考答案:C
1、根据先序遍历序列为 EFHIGJK,可知 E 为树的 根结点
2、根据中序遍历序列为 HFIEJKG,可知 左子树结点HFI右子树结点JKG
3、再看先序遍历 EFHIGJK,可知根结点的右孩子为 G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼丸丶粗面

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

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

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

打赏作者

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

抵扣说明:

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

余额充值