网站大量收购闲置独家精品文档,联系QQ:2885784924

《数据结构》--树解读.pptx

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

计科系 王丹丹 第6章 树 主要内容 树的定义和存储结构 二叉树的定义、性质和存储结构 二叉树的遍历、建立和线索化 树、森林与二叉树的转换 赫夫曼树及其应用 重点和难点 二叉树的数组、结构数组及链表的表示法 二叉树的建立算法 二叉树的遍历算法(前序、中序、后序) 二叉树的查找算法 二叉树的结点删除算法 6.1 开场白 AVATAR 6.2 树的定义 树的表示法 A B C D E F H I J G 根结点 6.2.1 结点分类 树的结点 结点的度 叶结点 分支结点 包含一个数据元素及若干指向其子树的分支。 结点拥有的子树数。(Degree) 度为0的结点。(终端结点) 度不为0的结点。(非终端结点/内部结点) 树的度 树内各结点的度的最大值。 例:思考结点A、B、C、D、E、J是什么类型,度是多少? A B C D E F H I J G 6.2.2 结点间关系 孩子结点(Child) 结点的子树的根称为该结点的孩子。 双亲结点(Parent) 孩子结点的上层结点叫该结点的双亲结点。 祖先结点(ancestor) 从根到该结点的所经路径上的所有结点均称为祖先结点。 兄弟结点(Sibling) 同一双亲的孩子互称为兄弟结点。 堂兄弟结点(Cousin) 双亲在同一层上的结点互称为堂兄结点。 子孙结点 以某结点为根的子树中任一结点都称为该结点的子孙结点。 思考:结点E的孩子、双亲、兄弟、堂兄弟、祖先、子孙结点分别是哪些? A B C D E F H I J G 6.2.3 树的其他相关概念 结点的层次(Level)从根开始定义起。 树的深度(Depth)/高度:树中结点的最大层次。 A B C D E F H I J G 第一层 第二层 第三层 第四层 深度为4 有序树和无序树 如果将树中结点的各子树看成从左至右是有秩序的,不能互换的,则称该树为有序树,否则称为无序树。 森林(Forst) m(m≥0)棵互不相交的树的集合。对树中每个结点而言,其子树的集合即为森林。 对比线性表与树的结构 线性结构 第一个数据元素:无前驱 最后一个数据元素:无后继 中间元素:一个前驱一个后继 树结构 根结点:无双亲,唯一 叶结点:无孩子,可以多个 中间结点:一个双亲多个孩子 6.3 树的抽象数据类型 ADT 树(Tree) Data 树是由一个根结点和若干棵子树构成。树中结点具有相同数据类型及层次关系。 Operation InitTree(*T):构造空树。 Destroy(*T):销毁树T。 CreateTree(*T,definition):按definition中给出树的定义来构造树。 ClearTree(*T):若树T存在,则将树T清为空树。 TreeEmpty(*T):若T为空树,返回true,否则返回false。 接上页 TreeDepth(*T):返回T的深度。 Root(T):返回T的根结点。 Value(T,cur_e):cur_e是树T中一个结点,返回此结点的值。 Assign(T,cur_e,value):给树T的结点cur_e赋值为value。 Parent(T,cur_e):若cur_e是树T的非根结点,则返回它的双亲,否则返回空。 LeftChild(T,cur_e):若cur_e是树T的非叶结点,则返回它的双亲,否则返回空。 接上页 RightSibling(T,cur_e):若cur_e有有兄弟,则返回它的右兄弟,否则返回空。 InisertChild(*T,*p,i,c):其中p指向树T的某个结点,i为所指结点p的度上加1,非空树c与T不相交,操作结果为插入c为树T中p指结点的第i棵子树。 DeleteChild(*T,*p,i):其中p指向树T的某个结点,i为所指结点p的度,操作结果为删除T中p指结点的第i棵子树。 endADT 6.4 树的存储结构 链式存储 顺序存储 结点的存储位置无法直接反映逻辑关系。 充分利用二者的特点完全可以实现对树的存储结构的表示!! 6.4.1 双亲表示法 假设以一组连续空间存储树的结点,同时在每个结点中,附设一个指示器指示其双亲结点在数组中的位置。其结点结构为: data是数据域,存储结点的数据信息; parent是指针域,存储该结点的双亲在数组中的下标。 约定根结点的位置域为-1,则所有的结点都存有它双亲的位置。 data parent 双亲表示法的结点结构定义代码 /*树的双亲表示法结点结构定义*/ #define MAX_TREE_SIZE 100 typedef int TElemType; //树结点的数据类型 typedef struct PTNode //结点结构

文档评论(0)

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

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

1亿VIP精品文档

相关文档