逻辑关系:树形关系,一对多
将最上层的第一个数据称之为根节点,
如果一个结点有直接后继 ,将这些后继称之为子结点,这个结点称之为父节点
度数:一个结点子结点的个数
一棵树的度数是指该数中结点的最大度数
度数为0的节点称之为终端结点或叶子结点,度数不为0的结点称之为分支结点
边数:
上层到下层(编号只差一个)称为一条边 1-2
层数(高度/深度):
结点的层数等于父节点的层数加一
根结点的层数为1
书中结点最大值称为数的高度或者深度
如果树中每一个节点的子节点最多有两个,那么称这个数为二叉树
二叉树于普通树不同,二叉树严格区分左孩子和右孩子
满二叉树:深度为k时有2的k次方-1
完全二叉树:只有最下面两层有度小于2的节点
且最下面一层的叶子节点集中在最左边的节点
二叉树第i层(i>=1)节点最多为2的(i-1)次方;
深度为k(k>=1)最多有(2的k次方 -1)
对于任意一个二叉树T,如果其终端节点树n,度为2的节点数为m
n = m+1
具有n个节点的完全二叉树其深度为log2(n)+1
对一颗有n个节点的完全二叉树的节点按层序编号,对任一节点
因为无法保证二叉树是一个满二叉树或完全二叉树,如果采用顺序存储,需要将不存在的节点预留位置,故不采用顺序存储
链式存储是高明的选择,一个数据域和两个指针域构成了一个节点的结构体。
二叉树的遍历:
先序遍历 : 根左右
中序遍历 左根右
后序遍历 左右根