【数据结构】树与二叉树

目录

树的基本概念

树形逻辑结构的应用

结点之间的关系描述

结点、树的属性描述

有序树  and  无序树

树与森林

树的性质

 二叉树

二叉树的基本概念

二叉树的五种状态

特殊的二叉树

满二叉树

 完全二叉树

二叉排序树

 平衡二叉树

二叉树的性质



树的基本概念

树是 n ( n >= 0 ) 个结点的有限集合, n = 0 时,称为空树

树是一种递归的数据结构

树是从树根生长,逐级分支

在任意一颗非空树中应满足:

-

1)有且仅有一个特定的称为的结点

-

2)当 n > 1 时,其余结点分为 m (m > 0) 个互不相交的有限集合 T1, T2, T3, ..., Tm, 其中每       个集合本身又为一棵树,并且称为根结点的子树

空树 —— 结点数为 0 的树

非空树 —— 有且仅有一个根节点

没有后继的结点称为 “ 叶子结点 ”(终端结点)度为零的结点

有后继的结点称为 “ 分支结点 ” (非终端结点)度不为零的结点


树形逻辑结构的应用

行政划分地图,文件系统,后期补充。


结点之间的关系描述

祖先结点:沿着当前结点向上走,沿边,经过的结点都是祖先结点

-

子孙结点:当前结点下方的所有结点

-

双亲结点:一个结点的直接前驱(父结点)

-

孩子结点:一个结点的直接后继

-

兄弟结点:同一个结点下的结点

-

堂兄弟结点:除兄弟结点外和当前结点同一层的结点

-

两条结点的路径:从上往下,单向的,(爷爷 -> 父亲 -> 我 -> 儿子)

-

路径长度:经过几条边

-


结点、树的属性描述

结点的层次(深度)——  从上往下数, (海拔以下),默认从 0 开始,也可以从 1 开始

-

结点的高度  —————   从下往上数, (海拔以上)

-

树的高度(深度)———  总共层数

-

结点的度  ——————  有几个孩子(分支)

-

树的度     ——————   各结点度的最大值


有序树  and  无序树

有序树 —— 逻辑上,树中结点的各子树从左至右是有次序的,不能交换。

无序树 —— 逻辑上,树中结点的各子树从左到右是无次序的,可以交换。

例如:地图的行政划分,划分区域之间如 北京市、深圳市 的次序可以不分次序,所以为无序树


树与森林

森林 —— m (m >= 0) 棵互不相交的树的集合

m = 0 时为空森林

森林运用eg:一个群体的家庭成员 

森林与树的转换,后期补充


树的性质

结点数 = 总度数 + 1(每一个结点的孩子在加上

度为 m 的树、m 叉树 的区别

树的度 —— 各结点的度的最大值  m 叉树 —— 每个结点最多只能有 m 个孩子的树
度为 m 的树m 叉树
任意结点的度 <= m (最多 m 个孩子)任意结点的度 <= m (最多 m 个孩子)
至少有一个结点度 = m (有 m 个孩子)允许所有结点的度都 < m
一定是非空树,至少有 m + 1 个结点 可以是空树

度为 m 的树第 i 层至多有 m^{i - 1} 个结点 ( i >= 1)

m 叉树第 i 层至多有 m^{i - 1} 个结点 ( i >= 1) 

高度为 h 的 m 叉树至多有 \frac{m^{h} - 1}{m - 1} 个结点 (等比数列求和)

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

高度为 h 、度为 m 的树至少有 h + m + 1 个结点

有 n 个结点的 m 叉树的最小高度为 \log _{m}(n(m - 1) + 1)


 二叉树


二叉树的基本概念

二叉树是 n (n >= 0) 个结点的有限集合,是有序树

每个结点至多只有两颗子树,左右子树不能颠倒

要与度为 2 的树进行区分 


二叉树的五种状态

空二叉树

\phi

只有左子树

只有右子树

只有根结点

左右子树都有


特殊的二叉树

满二叉树

高度为 h ,含有 2^{h} - 1 个结点的二叉树

特性:

1、最后一层有叶子结点

2、不存在度为 1 的结点

3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1;结点 i 的父结点为 i / 2(有的话)

 完全二叉树

每个结点编号与二叉树一一对应,如果删掉结点 12 ,则结点13的编号会变成12,结点便后不对应,就不是完全二叉树

特性:

1、只有可能在最后两层出现叶子结点

2、只可能有一个度为 1 的结点

3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1;结点 i 的父结点为 i / 2(有的话)

4、i <= (n / 2) 为分支结点,i > (n / 2) 为叶子结点 (总结点 n)

二叉排序树

用于元素的排序和搜索 

左子树上所有结点的关键字小于根结点的关键字

右子树上所有结点的关键字大于根结点的关键字。

                                             左子树右子树又各是一颗二叉排序树

 运用:插入数据 21,从根结点开始,21 > 12 , 21 位于右子树,21 < 24 ,21 位于以 24 为根结点的左子树,21 < 22 ,21 位于以 22 为头结点的 左子树。

 平衡二叉树

平衡二叉树搜索效率更高,丰满的树

树上一结点的左子树右子树深度之差不超过 1。


二叉树的性质

1、非空二叉树中度为 0 、1 和 2 的结点个数分别为 n_{0}n_{1} 和 n_{2},则n_{0} =  n_{2} + 1

 (叶子结点比二分支结点多一个)

 2、二叉树第 i 层至多有 2^{i - 1} 个结点 ( i >= 1) 

 3、高度为 h 的 二叉树至多有 2^{h} - 1 个结点 (等比数列求和)

完全二叉树性质:

1、具有 n 个 (n > 0)结点的完全二叉树的高度 h 为 \log _{2}(n + 1) 或 \(log _{2}n) + 1

2、完全二叉树,可以由结点数 n 推出度为 0、1 和 2 的结点个数为 n_{0}n_{1}和 n_{2}

 完全二叉树最多只有一个度为 1 的结点 ,n_{1} = 0 或 1

n_{0} = n_{2} + 1 ,n_{0} + n_{2} 一定是奇数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值