概述
树是一种非线性结构,类似于倒立的树形结构,根在最上,而叶朝下生长。它是由n(n>0)个有限结点组成一的个具有层次关系的集合,并有以下特点:
- 1. 只有一个根节点,根节点没有父节点
- 2. 每个节点有零个或多个子节点
- 3. 非根节点只有一个父节点
- 4. 除了根节点外,每个子节点可以分为多个不相交的子树
深度:树的最大层数
度:结点拥有的子树个数
树的度:树内各个节点的度的最大值
假定一棵树的广义表表示为,
A ( C , D ( E , F , G ), H ( I , J )),
则树中所含的结点数为 9 个,树的深度为 3 ,树的度为 3
静态双亲链表
遍历方式
二叉树
二叉树:二叉树是一种特殊的树,二叉树每个节点最多有两个子结点,分别称为左子树和右子树
满二叉树:深度为N,有2N-1个节点的二叉树
完全二叉树:二叉树的深度为N,除第N层外,其它各层(1~N- 1)都为满结点数,且第N层所有的结点都在最左边
二叉排序树
二叉排序树,BST Binary Search Tree,又叫二叉查找树,它可是一棵空树,或是具有以下性质的二叉树:
- 若有左子树,则左子树上所有节点的值均小于其根节点的值
- 若有右子树,则右子树上所有节点的值均大于其根节点的值
- 它的所有结点的左右子树也为二叉排序树
平衡二叉树是一种二叉排序树,其中每个结点的左子树和右子树的高度差至多等于1。它是一种高度平衡的二叉排序树。
哈夫曼树
用N个带权值的结点构建一棵树,如果构建的这棵树的带权路径长度最小,则称这棵树为“最优二叉树”,也叫“赫夫曼树”或“哈夫曼树”。
需要注意的是,同样叶子结点所构成的哈夫曼树可能不止一颗,只要保证权值大的结点所在边小就可以了。边为树的深度 - 1.
二叉树可以说是最简单的树,除此之外还有B树、Trie树等。在计算机应用中,树被用于文件系统、数据库管理系统等。