树的定义
树是由n个节点以及它们的之间关系R的集合,没有直接前驱的节点叫做根节点
- 当n = 0时,它是一个空结构
- 当n != 0时,根节点所连接的其他节点做一个划分,也可作为一个树的根节点
基本术语
- 节点:树中的每一个元素
- 边:由一个节点指向另一个节点的有向边
- 双亲节点:如果有从m到n的连线则称m为n的双亲节点
- 孩子节点:同上称n为m的孩子节点
- 兄弟节点:被统一双亲节点所指向的孩子节点之间成为兄弟节点
- 节点的度:某一非叶子节点的孩子节点数
- 树的度:树的所有节点中最大的度成为树的度
- 叶子节点:度为0的节点
- 分支节点:度不为0的节点
- 节点的层数:从根节点开始定义,根节点的层数为0,树中其他节点的层数为其双亲节点的层数+1
- 树的深度:节点层数的最大值
- 树的高度:深度+1
- 路径:从m到n所要经过的边
树的基本性质
- 节点数等于度数+1
- 度为m的树,其i层最多有mi
- 高度为h的树,最多有mh-1/m-1个节点
- 有n个节点的树,最少有「logm(n(m-1)+1)」(向上整)层,这是用上一条性质推出
二叉树
二叉树就是度为2的树结构
满二叉树是所有节点度为2的树结构,在树形图中就是所有叶子节点在最后一行
完全二叉树就是叶子节点只能分布在最后一层或者倒数第二层,并且最后一层的叶子节点必须从左向右依次排列