树 总述

简介: 树 树是n个结点的有限集。 当n等于0时,为空树。 当n等于1时,为根结点。 当n大于1时,其余节点可以分为m个互不相交的有限集T1、T2、...、Tm。每个集合本身又是一棵树,并且称为一根结点的子树。 显然,树是一种递归的数据结构。   树中某结点的孩子个数称为该结点的度。树的度=max{结点的度}。 树中结点数等于所有结点的度数和加1。 结点编号通常从1起,从上到下、

树是n个结点的有限集。

n等于0时,为空树。

n等于1时,为根结点。

n大于1时,其余节点可以分为m个互不相交的有限集T1T2...Tm。每个集合本身又是一棵树,并且称为一根结点的子树。

显然,树是一种递归的数据结构。

 

树中某结点的孩子个数称为该结点的度。树的度=max{结点的度}

树中结点数等于所有结点的度数和加1

结点编号通常从1起,从上到下、从左到右递增。

通常认为树高从1算起,根结点第一层,最后一个叶结点层数最大。

节点间关系有父、祖先、兄弟、孩子、子孙。

两个结点AB之间的路径就是从AB所经过的结点的序列。路径长度就是所经过的边的个数。

 

二叉树

二叉树是度不大于2的 且 单个孩子结点分左右的 有序树。在一棵有序树中,只有一个结点做孩子时不分左右。

二叉树的存储——数组、链表。

满二叉树:除叶节点外每个结点度都为2

完全二叉树:对一棵满二叉树,从后往前连续删除若干个结点,就成了完全二叉树。

完全二叉树两个特点:(1)叶子节点只出现在最高两层上;(2)度为1的结点最多只能有1个,且它只有左孩子。

 

树中数学规律

最优二叉树

树中结点的值代表该结点权重。从根到任意结点的路径长度(即经过的边数)与该结点权重之积为该结点的带权路径长度

树的带权路径长度WPLWeighted Path Length of Tree。表示树中所有叶结点的带权路径长度之

最优二叉树也称为哈夫曼树。表示带权路径长度最小的二叉树。

 

对于一个待处理的字符序列,如果对不同字符采用同样的编码长度,这种编码方式叫固定长度编码。如果采用不等长度的二进制位表示,叫可变长度编码。

哈夫曼编码可以对高频字符赋以短编码,达到压缩数据的目的。

 

给定n个权值分别为w1,w2,、、、,wn的结点,最优二叉树的构造算法如下:

1. 将这n个结点看作n棵二叉树组成的森林F

2. 构造一个新节点,从森林F中选取两棵根结点权值最小的树作为新结点的左右子树,并且将新结点的权值置为两个选中树根的权值之和。

3. F中删除选中的两棵树,并将新构造的树加入F

4. 重复步骤23,直至F中剩下最后一棵树为止。

 

平衡二叉树

节点的 平衡因子——它的左子树的高度减去它的右子树的高度。
平衡树——树中任意一个结点的平衡因子的 绝对值不大于1。

二叉树的遍历

先序:根左右。
中序:左根右。
后序:左右根。
根据先序(或后序)与中序遍历可以唯一地确定一棵二叉树。而只靠先序与后序是不行的。

字典树

又叫 Trie树,可以看作是一个确定的有限状态自动机。
树种一个节点的所有子孙都有相同的前缀,故常用于搜索提示。
目录
相关文章
|
3月前
|
存储 算法 Linux
速学数据结构 | 树 森林 二叉树 的概念详讲篇
速学数据结构 | 树 森林 二叉树 的概念详讲篇
40 1
|
4月前
|
C++
【数据结构&C++】超详细一文带小白轻松全面理解 [ 二叉平衡搜索树-AVL树 ]—— [从零实现&逐过程分析&代码演示&简练易懂]
【数据结构&C++】超详细一文带小白轻松全面理解 [ 二叉平衡搜索树-AVL树 ]—— [从零实现&逐过程分析&代码演示&简练易懂]
|
8月前
|
存储 关系型数据库 MySQL
浅浅谈一谈B树和B+树
浅浅谈一谈B树和B+树
|
10月前
|
存储 算法 数据可视化
关于B+树的介绍、用途和c++代码实现
关于B+树的介绍、用途和c++代码实现
|
10月前
|
存储 算法 Java
Java数据结构与算法分析(十)B树图文详解(含完整代码)
迄今为止,已经介绍了《 二叉查找树 》和《 AVL树 》,我们始终假设可以把整个数据结构存储在内存中。可是,如果数据多到内存装不下,这就意味着必须把数据放在磁盘上,显然这些数据结构不再适用。 问题在于磁盘的I/O速度是远远不如内存访问速度的,然而从一棵树中查找到某个元素,必须从根节点一层层往下找,这每一次查找便是一次I/O操作。为了提高性能,就必须要减少查找的次数。 如能减少树的高度、增加每个节点中的元素数,便是种有效的解决方案。实现这种想法的一种方法是使用B树。
79 0
|
存储 机器学习/深度学习 算法
数据结构 | 有关树和二叉树的详解【内附考点精析】
树和二叉树的基本概念和性质,内附精致讲解图和推理过程
161 0
数据结构 | 有关树和二叉树的详解【内附考点精析】
|
算法
数据结构上机实践第14周项目2 - 二叉树排序树中查找的路径
数据结构上机实践第14周项目2 - 二叉树排序树中查找的路径
数据结构上机实践第14周项目2 - 二叉树排序树中查找的路径
|
存储
第 10 章 树结构的基础部分(一)
第 10 章 树结构的基础部分
52 0
|
存储 搜索推荐 索引
第 10 章 树结构的基础部分(二)
第 10 章 树结构的基础部分
58 0
|
存储
树的概念及结构(一篇足以让你认识树)(2)
树的概念及结构(一篇足以让你认识树)
113 0
树的概念及结构(一篇足以让你认识树)(2)