[工学]数据结构与算法第四章清华大学出版社赵玉兰.ppt

[工学]数据结构与算法第四章清华大学出版社赵玉兰.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构与算法第四章清华大学出版社赵玉兰

第4章 树与二叉树 4.1 树的定义和基本术语 4.2 二叉树 4.3 树与森林 4.4 森林与二叉树的关系 4.5 Huffman 树与编码 4.1 树(Tree)的定义和基本术语 树形结构是一种非线性结构,应用十分广泛 例如,行政机构、家谱、磁盘目录等 4.1 树(Tree)的定义和基本术语 磁盘目录 4.1 树(Tree)的定义和基本术语 树的定义 树是由 n(n?0)个结点组成的有限集合 如果n=0,称为空树 如果n 0,则: 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱; 除根以外的其它结点划分为m(m ?0)个互不相交的有限集合 T0, T1, …, Tm-1,每个集合又是一棵树,并且称之为根的子树(subTree)。每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。 4.1 树(Tree)的定义和基本术语 例,Tree=(D, R) D={Book, C1, C2, C3, S1.1, S1.2, S2.1, S2.2, S2.3, S2.1.1, S2.1.2 } R={Book,C1, Book,C2, Book,C3, C1,S1.1, C1,S1.2, C2,S2.1, C2,S2.2, C2,S2.3, S2.1, S2.1.1, S2.1, S2.1.2} 4.1 树(Tree)的定义和基本术语 树的术语 4.1 树(Tree)的定义和基本术语 术语主要来源于家谱和树 双亲、子女(parent,child) 若a,b ?R,则称a是b的双亲,b是a的子女(孩子) 结点的度(degree) 结点所拥有的子女数 叶(leaf)结点 度为0的结点 分枝结点(branch node) 度大于0的结点 树的度(degree) 树中最大的结点度 4.1 树(Tree)的定义和基本术语 结点所在的层次(level) 树根的层次为1 其它任一结点所在的层次是其双亲的层次加1 深度或高度(depth) 结点所在的层次的最大层数 4.1 树(Tree)的定义和基本术语 祖先、子孙(descendant,ancestor) 一个结点是它所有子树中的结点的祖先,这些结点是它的子孙 路径(path) 是一结点序列 n1, n2 ,n3 ,… ,nk,并且前1个结点是后1个结点的双亲 它的长度是 k-1 有序树(ordered tree) 每个结点的子女由左到右是有次序的;否则是无序树 4.1 树(Tree)的定义和基本术语 4.1 树(Tree)的定义和基本术语 森林(Forest) 是 m(m≥ 0)棵互不相交的树的集合 4.2 二叉树——ADT二叉树 二叉树(Binary Tree) 是有限个结点的集合(可以为空) 当二叉树非空时,其中有且仅有一个称为根的结点,余下的结点(如果有的话)被分为两棵互不相交的二叉树,分别称为根的左子树和右子树 4.2 二叉树——ADT二叉树 例 4.2 二叉树——ADT二叉树 二叉树的5种基本形态 4.2 二叉树——ADT二叉树 ADT二叉树的定义 ADT BinaryTree is { Data 是有限个结点的集合D。当D非空时,其中有一根结点t,余下的结点被分为t的左子树和右子树。 Operations Constructor Process:建立一棵空二叉树 Delete Process:删除二叉树 IsEmpty Process:判断二叉树是否是空 Output:若二叉树为空,则返回true,否则返回false 4.2 二叉树——ADT二叉树 Size Process:计算二叉树的结点数size Output:size Height Process:计算二叉树的高度height Output:height Root Process: x Output:置二叉树的根结点的值为x Parent Input:node是二叉树中的一个结点 Process:求node的双亲p,若node 是根,则p为空 Output:p 4.2 二叉树——ADT二叉树 CreateBinaryTree Input:二叉树的某种形式的定义definition Process:根据此定义definition构造二叉树 MakeTree Input:data是根结点值,left是左子树,right

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档