- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 树与二叉树1
算法与数据结构 第4章 树与二叉树 树型结构 前面几章相继介绍讨论的几种数据结构都属于线性结构,而在实际应用中的许多问题若采用非线性结构来表示会显得更加明确和方便。所谓非线性结构是指:在该类结构中至少存在一个数据元素有两个或多个的直接前驱(或直接后继)元素。 树型结构就是其中一类十分重要的非线性结构, 树型结构 它可用来描述客观世界中广泛存在的许许多多分等级、呈现层次结构的关系。例如:家谱,各种社会组织结构,操作系统中文件管理,编译程序中的语法树,数据库系统的数据组织方式等。 直观上看,树形结构是以分支(父子)关系定义的层次结构。 树型结构 从上述定义中可以看到树结构具有如下特点: ① 有且仅有一个结点没有直接前驱结点,这个结点称为根结点; ② 除根结点外,其余所有结点有且仅有一个直接前驱结点; ③ 每个结点都可以有多个(可以是0个)直接后继。 树是一类重要的非线性数据结构,是以分支关系定义的层次结构 树的定义 定义 定义:树(tree)是n(n0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree) 特点: 树中至少有一个结点——根 树中各子树是互不相交的集合 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的~ 兄弟(sibling)——同一双亲的孩子 堂兄弟( )——双亲在同一层上的 结点互为堂兄弟 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数 森林(forest)——m(m?0)棵互不相交的树的集合 祖先(ancestors) ——从根到该结点所经分支上的所有结点 子孙(children) ——以某结点为根的子树中的任一结点都称为该结点的子孙 树的表示 通常树的表示方法有树形表示、嵌套集合表示、凹入表示和广义表表示四种,如下图所示: 树的其它术语 有时也引用家族树中的一些习惯用语,如孩子、双亲、祖先、子孙、兄弟等。如称结点的子树的根为该结点的孩子,该结点称为孩子的双亲; 同一个双亲的孩子之间互称为兄弟;从结点向上到达根结点所途经的所有结点称为该结点的祖先,从结点向下所能到达的所有结点称为该结点的子孙。如右图中,A是B、C和D的双亲,B、C和D都是A的孩子,B、C和D三者之间互为兄弟;A和C是E的祖先,A的子孙是B、C、D、E和F。 树的基本运算 setnull(T):置T为空树,即初始化一棵树T。 root(T)或root(x):求根函数。求树T的根或求结点x所在树的根结点,若T为空树或x不在树T中,则函数值为NULL。 parent(T,x):求双亲函数。求树T中结点x的双亲结点,若x是树T的根结点或x不在树T中,则函数值为NULL。 child(T,x,i):求孩子函数。求树T中结点x的第i个孩子结点,若结点x无第i个孩子则函数值为NULL。 create(x,F):建树函数。生成一棵以x为根结点,以森林F为子树森林的树。 rsibling(T,x):求右兄弟函数。求树T中结点x的右边兄弟,若x是其双亲的最右孩子或x不在T中,则函数值为NULL。 树的基本运算(续) addchild(y,i,x):插入子树操作。把以结点x为根的树置为结点y的第i棵子树。若树中无结点y或它的子树个数小于i-1,则为空操作。 delchild(x,i):删除子树操作。删除结点x的第i棵子树,若无结点x或x的子树个数小于i,则为空操作。 traverse(T):遍历操作。按某个次序依次访问树中各个结点,并使每个结点只被访问一次。也就是说,遍历操作的结果是对非线性结构树中各结点,按某个次序给出一个线性化的结点序列。 二叉树的概念 二叉树是另一种重要的树型结构。它的特点是每个结点至多有两棵子树,即二叉树中任何结点的度不得大于2。 二叉树的定义: 二叉树(binary tree)是n(n≥0)个结点的有限集合,它或者(n=0时)为空树,或者(n>0时)由一个根结点及两棵互不相交的分别称为根的左子树和右子树的二叉树组成。 二叉树的概念(续) 由定义显见二叉树的递归性质。 应该指出的是,二叉树与树是两个不同的概念,它不是树的特殊情况;这是因为二叉树的子树有左右之分,而树的子树不必区分次序。 另外二叉树与度为2的有序树也是不
您可能关注的文档
- 软件测试(14-1)_缺陷跟踪管理.ppt
- 牛顿定律应用补充题.ppt
- 日本企业实现自我产业升级.doc
- 创伤失血性休克复苏新理念及2007欧洲治疗指南.pdf
- 燃气管道带气开孔施工.doc
- 山东圣荣建设集团商业模式的研究.doc
- 大自然场景的布光及材质详解.doc
- 综艺晚会光与景的融合.pdf
- 2开题题报告格式实例.doc
- 第七讲计算机组装维护.ppt
- 历史的巨响 奋进的力量纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 历史的巨响 奋进的力量:纪念我国第一颗原子弹爆炸成功60周年-热点速递“内容简介+素材集锦+时评+作文链接+范文”.docx
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年中考文综试卷(解析版).doc
- 吉林省2016年度中考政 治试题(word版,含答案).doc
- 吉林省2016年中考政治试卷及答案【word版】.doc
- 2016年吉林省中考政治试题及答案解析.doc
- 吉林2016年初中毕业生学业考试.doc
- 竞聘技校数学老师演讲.docx
- 2016年吉林省中考政治试题解析.doc
文档评论(0)