第六章树与二叉树解析.ppt

6.1.1 串的基本概念 6.1.1 树的定义 树(Tree)是n(n≧0)个结点的有限集合T,若n=0时称为空树,否则: ⑴ 有且只有一个特殊的称为树的根(Root)结点; ⑵ 若n1时,其余的结点被分为m(m0)个互不相交的子集T1, T2, T3…Tm,其中每个子集本身又是一棵树,称其为根的子树(Subtree)。 这是树的递归定义。 6.1.1 树的定义 6.1.2 树的抽象数据类型 ADT Tree{ 数据对象D:D是具有相同特性的数据元素的集合。 数据关系R:若D为空集,则称为空树;//允许n=0 若D中仅含一个数据元素,则R为空集; 其他情况下的R存在二元关系: ① root 唯一 //关于根的说明 ② Dj∩Dk= Φ //关于子树不相交的说明 ③ …… //关于数据元素的说明 基本操作 P: //至少有15 }ADT Tree 6.1.3 树的其他表示形式 6.1.4 树的基本术语 6.1.4 树的基本术语 6.1.4 树的基本术语 孩子、双亲:树中某结点的子树的根结点称为这个结点的孩子结点(children),这个结点称为它孩子结点的双亲结点(parent);兄弟:具有同一个双亲的孩子结点互称为兄弟结点(brother)。 6.1.4 树的基本术语 祖先(ancestor) :从根到该结点所经分支上的所有结点。 子孙(descendant):以某结点为根的子树中的任一结点。 6.1.4 树的基本术语 结点所在层(level)数:根结点的层数为1;对其余任何结点,若某结点在第k层,则其孩子结点在第k+1层。 树的深度(depth):树中所有结点的最大层数,也称高度 6.1.4 树的基本术语 层序编号(level code):将树中结点按照从上层到下层、同层从左到右的次序依次给他们编以从1开始的连续自然数。 6.1.4 树的基本术语 有序树、无序树:如果一棵树中结点的各子树从左到右是有次序的,称这棵树为有序树(ordered tree);反之,称为无序树(unordered tree)。 森林(forest):m (m≥0)棵互不相交的树的集合。 普通树(多叉树)若不转化为二叉树,则运算很难实现 为何要重点研究每结点最多只有两个 “叉” 的树? 二叉树的结构最简单,规律性最强; 可以证明,所有树都能转为唯一对应的二叉树,不失一般性。 6.2.1 二叉树的定义 二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 二叉树基本特点: 结点的度小于等于2 有序树(子树有序,不能颠倒) 二叉树的五种不同形态 6.2.1 二叉树的定义 问题:具有3个结点的树和具有3个结点的二叉树的形态各有多少种?普通树呢? 6.2.2 特殊二叉树 6.2.2 特殊二叉树 6.2.2 特殊二叉树 6.2.2 特殊二叉树 6.2.2 特殊二叉树 6.2.2 特殊二叉树 6.2.3 二叉树的性质 性质1 二叉树的第i层上最多有2i-1个结点(i≥1)。 证明: 当i=1时,第1层只有一个根结点,而2i-1=20 =1,结论显然成立。 假定i=k(1≤k<i)时结论成立,即第k层上至多有2k-1个结点, 则i=k+1时,因为第k+1层上的结点是第k层上结点的孩子,而二叉树中每个结点最多有2个孩子,故在第k+1层上最大结点个数为第k层上的最大结点数的二倍,即2×2k-1=2k。结论成立。 6.2.3 二叉树的性质 性质2 一棵深度为k的二叉树中,最多有2k-1个结点,最少有k个结点。 证明: 由性质1可知,深度为k的二叉树中结点个数最多 = = =2k-1; 每一层至少要有一个结点,因此深度为k的二叉树,至少有k个结点。 6.2.3 二叉树的性质 性质3 在一棵二叉树中,如果叶子结点数为n0,度为2的结点数为n2,则有: n0=n2+1。 证明: 证明: 设n为二叉树的结点总数,n1为二叉树中度为1的结点数,则有: n=n0+n1+n2 ………. …… ⑴ 在二叉树中,除了根结点外,其余结点都有唯一的一个分枝进入,由于这些分枝是由度为1和度为2的结点

文档评论(0)

1亿VIP精品文档

相关文档