第6章 树和二叉树
树型结构:一类重要的非线性数据结构
线性结构:第一个元素(无前驱),最后一个数据元素(没后继),其它(一前一后)
树:根节点(无前驱),叶节点(无后继),其它(1前多后)。
6.1 树的定义和基本术语
树:n个节点的有限集。
1) 非空树:有且仅有一个特定的称为根的节点。
子树:当节点大于1时,其余节点可分为多个互补相交的有限集,每个集本身有是一个树,称为根的子树
(每个子树个根节点有且仅有一个直接前驱,可有0或多个直接后继)
树的结构定义是一个递归的定义,即在树的定义中又用到树的概念,它道出树的固有特性
树的其它表现形式:
a.嵌套集合(一些集合的集体,任意两个或者不想交、或者包含另一个)的形式
b.是以广义的形式表示的
c嵌入凹入表示法
基本术语:
节点:包含一个数据元素及若干指向其子树的分支。
度:节点拥有的子树的个数总数成为节点的度。
叶子(终端节点):度为0的节点。
分支节点:度不为0的节点
树的度:树内各节点的度的最大值。
孩子:节点的子树的根。
双亲节点:该节点
兄弟节点:拥有相同双亲的节点
祖先节点:从根到该节点所经分支上的所有节点
子孙节点:以某节点为根的子树中任一节点都为该节点的子孙。
堂兄节点:同一层上的节点
深度:树中节点的最大层次
有序树:子树从左到右有次序
无序树:不考虑子树的顺序
深林:m棵互不相交的树的集合。
6.2二叉树
1)定义:另一树型结构,
特点:每个节点至多只有两棵子树(没有度大于2的节点);子树有左右之分,次序不能颠倒
2) 五种基本形式:
满二叉树:深度为k且有2的k次方-1个节点的二叉树
特点:每一层上的节点数都是最大节点数。
完全二叉树:深度为k的,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中编号从1到n的节点一一对应时
特点:1)子叶节点只可能在层次最大的两层上出现;2)对任一节点,子孙最大层次左分支等于或比右分支>一
满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
6.2.2二叉树的性质