第6章树和二叉树树的定义和基本术语•树是n(n≥0)个结点(数据元素)的有限集
若n=0,集合为空树;若n>0,则集合对应一棵非空树,它具有如下特点:(1)树中有且仅有一个特定的称为根的结点;(2)当n>1时,根以外的其余结点可分为m个(m>0)互不相交的有限集
这些有限集本身又是一棵树,是根的子树
(递归定义)•抽象数据类型树的定义:ADTTree•树结构的其它表示形式:嵌套集合形式、广义表形式、凹入形式•树的结点包含一个数据元素和若干指向其子树的分支•结点的度:结点拥有的子树的数目•树的度:树中结点的度的最大值•叶子(终端结点):度为0的结点•非终端结点(分支结点):度不为0的结点•结点间的关系:双亲、孩子、兄弟、祖先、子孙、堂兄弟等•树的深度(高度):树中结点的最大层次数(注:根为第一层,其孩子为第二层……)•有序树和无序树:子树是否有次序•森林:m(m>0)棵互不相交的树的集合树的示例ABCDGFEHIJ二叉树•二叉树是另一种树形结构
它的特点是每个结点至多只有二棵子树(树中不存在度大于2的结点),并且子树有左右之分(有序树)
•抽象数据类型二叉树的定义:ADTBinaryTree•二叉树的五种基本形态:二叉树的性质•性质1:二叉树的第i层上至多有2i-1个结点•性质2:深度为k的二叉树至多有2k-1个结点•性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1•性质4:具有n个结点的完全二叉树的深度为[log2n]+1•性质5:如果对一棵有n个结点的完全二叉树按层次从左到右依次编号(根结点编号为1),则对任一编号为i的结点(1≤i≤n),其双亲编号为[i/2],其左孩子编号为2i,右孩子编号为2i+1(如果存在的话)完全二叉树的定义•由性质2,深度为k的二叉树至多有2k-1个结点,而结点数目达到最多的二叉树为满二叉树•对深度为k