数据结构——树和二叉树_干货笔记

树和二叉树_干货笔记

    • 树的定义和基本术语
    • 二叉树
    • 树和森林
    • 赫夫曼树及其应用

树的定义和基本术语

1.树型结构是一类非线性数据结构,树是以分支关系定义的层次结构。
2.树是n(n≥0)个结点的有限集。在任意一课非空树中:
(1)有且仅有一个特定的称为根的结点。
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个
集合本身又是一棵树,并且称为根的子树。
3.树的结点包含一个数据元素及若干指向其子树的分支。
4.度:结点拥有的子树数称为结点的度。
5.叶子/终端结点:度为0的结点。
6.分支结点/非终端节点:度不为0的结点。
7.树的度:树内各结点的度的最大值。
8.祖先:从根到该结点所经分支上的所有结点。
9.子孙:以某结点为根的子树中任一结点。
10.深度/高度:树中结点的最大层次。
11.有序树:将树中结点的各子树看成从左至右是有次序的(即不能互换),称该树为有序树
12.森林:森林是m(m≥0)棵互不相交的树的集合。对树中的每个结点而言,其子树的集合
即为森林。
13.就逻辑结构而言,任何一棵树是一个二元组Tree=(root,F),其中:root是数据元素,
称做树的根节点;F是m(m≥0)棵树的森林,F=(T1,T2,...,Tm),其中Ti=(r,Fi)称
做根root的第i棵子树;当m≠0时,在树根和其子树森林之间存在下列关系:
RF={|i=i,2,...,m,m>0}
14.树的逻辑结构:
(1)特点:一对多(1:n)
(2)除了根结点,其余结点都只有一个直接前驱,有多个直接后,且子树之间互不相交。
15.树的存储结构:顺序存储、链式存储

二叉树

1.二叉树是另一种树形结构,它的特点是每个结点至多只有两棵子树。是n(n≥0)个结点
的有限集合,由一个根结点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成 。
2.所有有序树都能转为唯一对应的二叉树。
3.逻辑结构:  一对二(1:2) 
4.基本特征:① 每个结点最多只有两棵子树(不存在度大于2的结点);
			② 左子树和右子树次序不能颠倒(有序树)。.

数据结构——树和二叉树_干货笔记_第1张图片

5.二叉树的性质:
(1)在二叉树的第i层至多有2^(i-1)个结点(i≥1)。

数据结构——树和二叉树_干货笔记_第2张图片

(2)深度为k的二叉树至多有2^(k)-1个结点,(k≥1)。

数据结构——树和二叉树_干货笔记_第3张图片

(3)对任何一棵二叉树T,如果其终端结点树为n0,度为2的结点数为n2,则n0=n2+1。
(4)设n1为二叉树T中度为1的结点数,由于二叉树中所有结点的度均小于或等于2,所以
其结点总数为:n=n0+n1+n2.
(5)结点总数=分支数(B)+1; 终端结点数(n0)=(度为2结点数)n2+1。
(6)满二叉树:一棵深度为k且有2^(k)-1个结点的二叉树。
	满二叉树的特点:
		① 叶子只能出现在最下一层;
		② 只有度为0和度为2的结点。
(7)完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤i≤n)的结点
与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同。
(8)在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一棵完全二叉树.
(9)完全二叉树的特点:
		1️⃣叶子结点只能出现在最下两层,且最下层的叶子结点都集中在二叉树的左部。
		2️⃣完全二叉树中如果有度为1的结点,只可能有一个,且该结点只有左孩子。
		3️⃣深度为k的完全二叉树在k-1层上一定是满二叉树。
(10)具有n个结点的完全二叉树的深度为[log2N](方括号代表取整)+1.
(11)具有n个结点的完全二叉树的叶子结点个数为n/2个。

数据结构——树和二叉树_干货笔记_第4张图片

(11)对n个结点的完全二叉树,若从上至下、从左至右编号,则编号为i 的结点,其左孩子
编号必为2i(2i>n无左孩子),其右孩子编号必为2i+1 (2i+1>n无右孩子) ;其双亲
的编号必为 [ i/2 ] (i=1 时为根,除外)

在这里插入图片描述

树和森林

1.	树的先序遍历等价于二叉树的先序遍历  树的后序遍历等价于二叉树的中序遍历。
2.	森林的先序遍历等价于二叉树的先序遍历!森林的中序遍历等价于二叉树的中序遍历

前序遍历树
数据结构——树和二叉树_干货笔记_第5张图片
后序遍历树
数据结构——树和二叉树_干货笔记_第6张图片
层序遍历树
数据结构——树和二叉树_干货笔记_第7张图片
森林先序和中序遍历
数据结构——树和二叉树_干货笔记_第8张图片
注意
数据结构——树和二叉树_干货笔记_第9张图片

赫夫曼树及其应用

1.路径:由一结点到另一结点间的分支所构成。
2.路径长度:路径上的分支数目。
3.树的路径长度:从树根到每一结点的路径长度之和。
4.带权路径长度(WPL):结点到根的路径长度与结点上权的乘积。
5.树的带权路径长度:树中所有叶子结点的带权路径长度之和
6.哈 夫 曼 树:带权路径长度最小的二叉树
7.哈夫曼树的特点:
(1). 权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点。 
(2). 只有度为0(叶子结点)和度为2(分支结点)的结点,不存在度为1的结点. 

数据结构——树和二叉树_干货笔记_第10张图片

补充:
树的基本概念
1.结点的度:结点挂起的子树数
2.树的度:所有结点度中的最大值。

树的存储结构:
3.树的顺序存储:从上至下、从左至右将树的结点依次存入内存。
重大缺陷:复原困难(不能唯一复原就没有实用价值)
4.树的链式存储:可用多重链表:一个前趋指针,n个后继指针。
缺点:等长结构太浪费(每个结点的度不一定相同);
不等长结构太复杂(要定义好多种结构类型)。

5.解决思路:即把一般的树转换为二叉树—左孩子右兄弟的方法。研究最简单、最有规律的二叉树即可。

图片来源:XX大学授课PPT

你可能感兴趣的:(数据结构)