是n( n>=0)个结点的有限集合。n=0时称为空树。在任意一颗非空树种:(1)有且仅有一个特定的称为根的结点;(2)当n >1的时候,其余结点可分为m(m>0)个互为不相交的有限集T1,T2,.......,Tm。其中每一个集合本身又是一棵树,并且称为 根 的 子 树。(递归的定义)
1.n>0 时根结点是唯一的。不可能存在多个根结点。数据结构中的树只能有一个根结点。
2.m>0时,子树的个数没有限制,但他们一定是互不相交。
结点分类;
度:结点拥有的子树数称为结点的度。
叶结点或终端结点:度为0的结点
非终端结点或分支结点:度不为0 ,内部结点(不是根结点)
树的度:树内各结点的度的最大值。
结点的孩子;结点的双亲;兄弟;祖先;子孙;
树的深度或者高度;
堂兄弟;结点的层次;
如果将树种结点的各个子树看成从左至右是有次序的,不能互换的,则称该树为有序树,否则为无序树。
2。森林是m>=0颗互不相交的树的集合。
3。二叉树:是n>=0个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的分别称为根节点的左子树和you子树的二叉树组成。
二叉树 不是特殊的树,二叉树分左右子树有次序。
特殊的二叉树:左斜树,右斜树;满二叉树;完全二叉树;
线索二叉树:存储二叉树的一种结构
4.二叉排序树=二叉查找树: Binary Search Tree(BST)
1.若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值。
2.若它的右子树不空,则右子树上所有结点的值均大于她的根结点的值。
3.它的左,右子树也分别为二叉排序树。
因为一颗由n个结点随机构造的二叉查找树的高度为lgn,所以顺理成章,二叉查找树的一般操作的实行时间为O(lgn)。但二叉查找树若退化为了一个颗具有n个结点的线性链后,则这些操作最坏的情况运行时间为O(n);
5.平衡二叉树 AVL是一种二叉排序树,其中每一个结点的左子树和右子树的高度差至多等于1. 它是一种高度平衡的二叉排序树。将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF。平衡二叉树BF可能为 -1 0 1
最小不平衡子树。
红黑树:R-B Tree
6、多路查找树,其每一个结点的孩子数可以多于两个,且每一个结点处可以存储多个元素。由于它是查找树,所有元素之间存在某种特定的排序关系。包括:
7、2-3树;是这样的一颗多路查找树:其中的每一个结点都具有两个孩子,或者三个孩子。一个2结点包含一个元素和两个孩子或者没有孩子。一个3结点包含一小一大两个元素和三个孩子或没有孩子。
8、
B+树
哈夫曼树
在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。
1.路径长度
在树中从一个结点到另一个结点所经历的分支构成了这两个结点间的路径上的分支数称为它的路径长度
2.树的路径长度
树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。
3.树的带权路径长度(Weighted Path Length of Tree,简记为WPL)
结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。
结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积。
树的带权路径长度(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和,通常记为:
其中:
n表示叶子结点的数目
wi和li分别表示叶结点ki的权值和根到结点ki之间的路径长度。
树的带权路径长度亦称为树的代价。