httpgcnuaaeducndscodewoziji3数据结构1第6章ppt.pptVIP

httpgcnuaaeducndscodewoziji3数据结构1第6章ppt.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
httpgcnuaaeducndscodewoziji3数据结构1第6章ppt

第六章 树和二叉树 树的定义和基本术语 二叉树 遍历二叉树和线索二叉树 树和森林 赫夫曼树及其应用 树的定义和基本术语 树(Tree):是n(n=0)个结点的有限集。 在任意一个非空树中: ⑴有且仅有一个特定的称为根(Root)的结点; ⑵当n=1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,…,Tm,其中Ti是一棵树,称为根结点子树 例:(a)是只有一个根结点的树.(b)是有13个结点的树,A是根,其余结点分成三个互不相交的子集:T1=(B,E,F,K,L);T2=(C,G);T3=(D,H,I,J,M).T1,T2,T都是根A的子树,本身也是一棵树 抽象类型树的定义: ADT Tree { 数据对象D:D是具有相同特性的数据元素的集合. 数据关系R: 若D为空集,则称为空树; 若D仅含一个数据元素,则R为空集,否则 R={H},H是如下二元关系: (1)在D中存在唯一的称为根的数据元素root,它在 关系H下无前驱; (2)若D-{root}=φ,则存在D-{root}的一个划分D1, D2,…, Dn(m0),对任意j=k(1=j,k=m)有Dj∩ Dk=φ, 且对任意的i(1=i=m),唯一存在数据元素xi ∈Di,有 root, xi∈H; ⑶对应于D-{root}的划分,H-{root, xi,…,root, xn}有唯一的一个划分H1, H2,…, Hn(m0),对任意j=k(1=j,k=m)有Hj ∩Hk=φ,且对任意i(1=i=m), Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树。 基本操作P: InitTree(T); 操作结果:构造空树T DestroyTree(T,definition); 初始条件:树T存在 操作结果:销毁树T CreatTree(T,definition); 初始条件:definition给出树T的定义 操作结果:按definition树构造树T ClearTree(T) 初始条件:数T存在 操作结果:将树T清为空树 TreeEmpty(T); 初始条件:树T存在 操作结果:若T为空树,则返回TRUE,否则FALSE TreeDepth(T); 初始条件:树T存在 操作结果:返回T的深度 Root(T); 初始条件:树T 存在 操作结果:返回T的根 Value(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点 操作结果:返回cur_e的值 Assign(T,cur_e,value); 初始条件:树T存在,cur_e是T中某个结点 操作结果:结点cur_e赋值 为value Parent(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点 操作结果:若cur_e是T的非根结点,则返回它的双亲,否 则函数值为“空” LeftChild(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点 操作结果:若cur_e是T的非叶子结点,则返回它的最左孩 子,否则返回“空” RightSibling(T,cur_e); 初始条件:树T存在,cur_e是T中某个结点 操作结果:若cur_e有右兄弟,则返回它的右兄弟,否则 函数值为 “空” InsertChild(T,P,i,c); 初始条件:树T存在,P指向T中某个结点,1=i=P所指 结点的度+1,非空树c 与T不相交 操作结果:插入c为T中p指结点第i棵子树 DeleteChild(T,P,i); 初始条件:树T存在,p指向T中某个结点,1=i=P指结点的度 操作结果:删除T中P所指结点的第i棵子树 TraverseTree(T,Visit()); 初始条件:树T存在,Visit是对结点操作的应用函数 操作结果:按某种次序树对T的每个结点调用函数visit()一次且至多一次,一旦visit()失败,则操作失败 }ADT Tree 树的逻辑表示形式 (a)树型结构 (b)嵌套集合 (c)广义表 (d)凹入表(目录表示法) 树的基本术语 度:结点拥有的子树数称为结点的度 叶子(终端结点):度为0的结点 非终结点(分支结点):度不为0的结点 树的度是树内各结点的度的最大值 结点的子树的根称为该结点的孩子 该结点称为孩子的双亲(parent)

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档