04树 + 堆 + 优先队列 + 图(D1_树(D2_二叉树(BT)(D1_基础学习)))

目录

一、简介

二、二叉树的类型

1. 严格二叉树

2. 满二叉树

3. 完全二叉树

三、二叉树的性质

四、二叉树的结构

五、二叉树的操作

1. 基本操作

2. 辅助操作

六、二叉树的应用

七、二叉树的遍历

1. 简介

2. 遍历方式

3. 遍历的分类:4类

3.1. 前序遍历

1> 递归前序遍历

2> 非递归前序遍历

3.2. 中序遍历

1> 递归中序

2> 非递归中序

3.3. 后序遍历

1> 递归后序

2> 非递归后序

3.4. 层次遍历

1> 递归层次

2> 非递归层次


一、简介

如果一棵树中的每个结点有0、1或者2个孩子结点,那么这棵树就称为二叉树。

空树也是一棵有效的二叉树。

一棵二叉树可以看作由根结点和两棵不相交的子树(分别称为左子树和右子树)组成。

如下图所示:

二、二叉树的类型

1. 严格二叉树

严格二叉树:二叉树中的每个结点要么有两个孩子结点,要么没有孩子结点。

2. 满二叉树

满二叉树:二叉树中的每个结点恰好有两个孩子结点且所有叶子结点都在同一层。

3. 完全二叉树

完全二叉树:在定义完全二叉树之前,假定二叉树的高度为h。

对于完全二叉树,如果将所有结点从根结点开始从左至右,从上至下,依次编号(假定根结点的编号为1),

那么将得到从1~n(n 为结点总数)的完整序列。

在遍历过程中对于空指针也应赋予编号。

如果所有叶子结点的深度为h或h一1,且在结点编号序列中没有漏掉任何数字,那么这样的二叉树叫作完全

二叉树。

三、二叉树的性质

为了讨论二叉树的下述性质,假定树的高度为h,且根结点的深度为0。

四、二叉树的结构

接下来定义二叉树的结构。为了简单起见,假定结点的数据为整数。

表示一个结点(包含数据)的方法之一是定义两个指针,一个指向左孩子结点,另一个指向右孩子结点,中间

为数据字段(如下图所示)。

在树中,默认的流向是从双亲结点指向孩子结点,但并不强制表示为有向边。

如下两种表示方法相同:

五、二叉树的操作

1. 基本操作

2. 辅助操作

六、二叉树的应用

七、二叉树的遍历

1. 简介

为了对树结构进行处理,需要一种机制来遍历树中的结点。访问树中所有结点的过程叫作树遍历。

在遍历过程中,每个结点只能被处理一次,尽管其有可能被访问多次。

我们已经知道,在线性数据结构(例如,链表、栈、队列)中,数据元素是以顺序方式被访问的。

但是,在树结构中,有多种不同的方式。

树遍历类似于在树中进行搜索操作,遍历的目标是按某种特定的顺序访问树的所有结点,

且遍历过程中所有的结点均需要处理,而搜索操作在找到指定结点时就会停止。

2. 遍历方式

从二叉树的根结点开始遍历,需要执行3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodingW丨编程之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值