当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

清华大学:《数据结构》课程电子教案(PPT课件讲稿)第六章 树与森林

资源类别:文库,文档格式:PPT,文档页数:119,文件大小:615KB,团购合买
第六章树与森林 一、树和森林的概念 二、二叉树(Binary Tree) 三、二叉树的表示 四、二叉树遍历(Binary Tree Traversal 五、线索化二叉树(Threaded Binary Tree) 六、堆(Heap) 七、树与森林Tree& Forest) 八、二叉树的计数 九、霍夫曼树(Huffman Tree)
点击下载完整版文档(PPT)

第六章刺与麝邾 树和森林的概念 二叉树( Binary Tree 二叉树的表示 二叉树遍历( Binary Tree Traversa 线索化二叉树( Threaded Binary Tree 堆(Heap) 树与森林(Tree& Forest) 二叉树的计数 霍夫曼树( Huffman Tree

树和森林的概念 二叉树 (Binary Tree) 二叉树的表示 二叉树遍历 (Binary Tree Traversal) 线索化二叉树 (Threaded Binary Tree) 堆 ( Heap ) 树与森林 (Tree & Forest) 二叉树的计数 霍夫曼树 (Huffman Tree)

树和森林的概念 树的完义 树是由n(n≥0个结点组成的有限集合。如果n 0,称为空树;如果n>0,则 有一个特定的称之为根root的结点,它只有 直接后继,但没有直接前驱; 除根以外的其它结点划分为m(m≥0个互不 相交的有限集合T,T1,…,Tm,每个集合又是一 棵树,并且称之为根的子树( subTree)每棵子树 的根结点有且仅有一个直接前驱,但可以有0个 或多个直接后继

树和森林的概念 树的定义 树是由n (n  0)个结点组成的有限集合。如果n = 0,称为空树;如果n > 0,则 ▪ 有一个特定的称之为根(root)的结点,它只有 直接后继,但没有直接前驱; ▪ 除根以外的其它结点划分为m (m  0)个互不 相交的有限集合T0 , T1 , …, Tm-1,每个集合又是一 棵树,并且称之为根的子树(subTree)。每棵子树 的根结点有且仅有一个直接前驱,但可以有0个 或多个直接后继

root root A Level o (a) eve depth=3 E)(F)(G)(H level 2 level 3 0结点(mode) 0兄弟( ( Sibling)结点有序树 结点的度( degree)祖先 ancestor)结点无序树 分支( branch)结点子孙 descendant)结点·森林 叶(ea结点 0结点所处层次eve) 0子女( child)结点树的高度( depth) 0双亲( parent)结点。树的度( degree)

结点(node) 结点的度(degree) 分支(branch)结点 叶(leaf)结点 子女(child)结点 双亲(parent)结点 兄弟(sibling)结点 祖先(ancestor)结点 子孙(descendant)结点 结点所处层次(level) 树的高度(depth) 树的度(degree) ◼ 有序树 ◼ 无序树 ◼ 森林

树的抽象数据类型 template class Tree i public ee e(); position root o; Buildroot( const Type& value ) position First Child( position position Nextsibling( position p, position v ) position Parent( position ) Type Retrieve( position p ) position Insertchild( const position p, const Type &value

template class Tree { public: Tree ( ); ~Tree ( ); position Root ( ); BuildRoot ( const Type& value ); position FirstChild ( position p ); position NextSibling ( position p, position v ); position Parent ( position p ); Type Retrieve ( position p ); position InsertChild ( const position p, const Type &value ); 树的抽象数据类型

position Delete child(position p, int i) void Delete Tree(position int IsEmpty (;

position DeleteChild ( position p, int i ); void DeleteSubTree ( position t ); int IsEmpty ( ); }

二叉树( Binary Tree 二叉树的完义 一棵二叉树是结点的一个有限集合,该 集合或者为空,或者是由一个根结点加上两 棵分别称为左子树和右子树的、互不相交的 二叉树组成。 (a)(b) R (e) 二叉树的五种不同形

二叉树 (Binary Tree) 二叉树的定义 二叉树的五种不同形态 一棵二叉树是结点的一个有限集合,该 集合或者为空,或者是由一个根结点加上两 棵分别称为左子树和右子树的、互不相交的 二叉树组成

二叉树的性质 性质1若二叉树的层次从0开始,则在二叉树的 第i层最多有2个结点。(i≥0) i证明用数学归纳法 性质2高度为k的二叉树最多有24+1-1个结点。 (k≥-1) 证明用求等比级数前k项和的公式 性质3对任何一棵二叉树,如果其叶结点个数为 np度为2的非叶结点个数为m2,则有 noEn+1

性质1 若二叉树的层次从0开始, 则在二叉树的 第 i 层最多有 2 i 个结点。(i  0) [证明用数学归纳法] 性质2 高度为k的二叉树最多有 2 k+1 -1个结点。 (k  -1) [证明用求等比级数前k项和的公式] 性质3 对任何一棵二叉树, 如果其叶结点个数为 n0 , 度为2的非叶结点个数为n2 , 则有 n0=n2+1 二叉树的性质

证明:若设度为1的结点有n1个,总结点个 数为n,总边数为e,则根据二叉树的定义, n=n0+n1+n2e=2m2+n1=n- 因此,有2m2+n1=n+n1+n2-1 2 0 0-2 +1 当当当当当当当当当当当当当当当当当当当当当当当巨当当当当巨当 定义1满二叉树( Full Binary tree 定义2完全二叉树( omplete Binary Tree) 若设二叉树的高度为h,则共有h+1层。除第h 层外,其它各层(0~h-1)的结点数都达到最大个数 第h层从右向左连续缺若干结点,这就是完全二 叉树

证明:若设度为1的结点有n1个,总结点个 数为n,总边数为e,则根据二叉树的定义, n = n0 + n1 + n2 e = 2n2 + n1 = n - 1 因此,有 2n2 + n1 = n0 + n1 + n2 - 1 n2 = n0 - 1 n0 = n2 + 1 定义1 满二叉树(Full Binary Tree) 定义2 完全二叉树(Complete Binary Tree) 若设二叉树的高度为h,则共有h+1层。除第h 层外,其它各层(0h-1)的结点数都达到最大个数, 第h层从右向左连续缺若干结点,这就是完全二 叉树

(8)(9 0203 (a)满二叉树 (b)完全二叉树 性质4具有n个结点的完全二叉树的高度为 log(n+1)|-1 证明:设完全二叉树的高度为则有 2h-1<n≤2h+1-12h<n+1≤2h+1 取对数h<log2(n+1)≤h+1

性质4 具有n个结点的完全二叉树的高度为 log2 (n+1) -1 证明:设完全二叉树的高度为h,则有 2 h - 1 < n  2 h+1 - 1 2 h < n+1  2 h+1 取对数 h < log2 (n+1)  h+1

性质5如果将一棵有n个结点的完全二叉树自顶 向下,同一层自左向右连续给结点编号0,1,2, n-1,然后按此结点编号将树中各结点顺序地存 放于一个一维数组中,并简称编号为结点为结 点i(0≤i≤n-1。则有以下关系 若i==0,则i无双亲 若i>0,则i的双亲为(-1)2」 若2*计1<n,则i的左子女为2*计1 若2*计2<n,则i的右子女为2*计2 若i为偶数,且i!=0,则其左兄弟为i1 若i为奇数,且i!=n-1,则其右兄弟为i1 i所在层次为Log2(计+1)

性质5 如果将一棵有n个结点的完全二叉树自顶 向下,同一层自左向右连续给结点编号0, 1, 2, …, n-1,然后按此结点编号将树中各结点顺序地存 放于一个一维数组中, 并简称编号为i的结点为结 点i (0  i  n-1。则有以下关系: ◼ 若i == 0, 则 i 无双亲 若i > 0, 则 i 的双亲为(i -1)/2 ◼ 若2*i+1 < n, 则 i 的左子女为2*i+1 若2*i+2 < n, 则 i 的右子女为2*i+2 ◼ 若 i 为偶数, 且i != 0, 则其左兄弟为i-1 若 i 为奇数, 且i != n-1, 则其右兄弟为i+1 ◼ i 所在层次为 log2 (i+1)

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共119页,可试读30页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有