树与二叉树
一、树的基本概念
1.树的定义
树是 n (n>=0) 个结点的有限集。当n=0时,称为空树。在任意一棵非空树中应满足:
(1)有且仅有一个特定的被称为根的结点。
(2)当 n >1 时,其余结点可分为 m (m>0) 个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树。
2.树的结构特点
树的定义是递归的,在树的定义中又用到了其自身,树是一种递归的数据结构。树作为一种逻辑结构,同时也是一种分层结构。具有以下几个特点:
(1)树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。
(2)树中所有结点可以有零个或多个后继。
(3)具有n个结点的树有n-1条边。
3.树的基本术语
(1)度:树中一个结点的孩子个数称为该结点的度,树中结点的最大度数称为树的度。
(2)度大于0的结点称为分支结点(又称非终端结点),度为0(没有子女结点)的结点称为叶子结点(又称终端结点)。在分支结点中,每个结点的分支数就是该结点的度。
(3)树的深度、高度和层次
结点的深度:是从根结点开始自顶向下逐层累加的。
结点的高度:从叶子结点开始自底向上逐层累加的
树的高度(或深度):树中结点的最大层数。
(4)有序树和无须树:树中结点的各子树从左到右是由有次序的,不能互换,称该树为有序树,否则称为无序树。