数据结构学习:树的基本概念
空树:结点数为0的树
非空树:有且仅有一个节点
没有后继的结点为叶子结点
没有前驱的结点为根节点
除了根节点外,任何一个结点都有且仅有一个前驱
树是n(n>=0)个结点的有限集合,n = 0时,称为空树
在任意一个非空树中:
有且仅有一个特定的根节点
当n>1时,其余结点可分为m个互不相交的有限集合T1,T2,……,其中每个集合本身又是一棵树,并且称为根节点的子树
树是一种递归定义的数据结构
理解父结点,祖宗结点,子结点,兄弟结点
树的深度(层次)(默认从1开始)
结点的度:有几个子节点
树的度:各结点的度的最大值
有序树:逻辑上看,树中结点的各子树从左至右的有次序的,不能互换。
无序树:逻辑上看,树中结点的各子树从左至右是无次序的,可以互换。
森林:由m(m>=0)棵互不相交的树的集合
树的性质:
结点数 = 总度数 + 1
结点的度:结点有几个孩子(分支)
度为m的树与M叉树的区别
树的度:各结点的度的最大值
任意结点的度都<=m
至少有一个结点的度为m
一定是非空树,至少有m+1个结点
M叉树:每个结点最多只能有m个孩子的树
任意结点的的度都<=m
允许所有结点的度都<m
可以是空树
度为m的树的第i层至多有m^(i-1)个结点
高度为h的m叉树至多有(m^h - 1)/ ( m - 1 )个结点
高度为h的m叉树至少有h个结点
高度为h的度为m树至少有h+m+1个结点
高度最小的情况:所有结点都有m个孩子