全国计算机等级考试二级公共基础之树与二叉树1.doc_第1页
全国计算机等级考试二级公共基础之树与二叉树1.doc_第2页
全国计算机等级考试二级公共基础之树与二叉树1.doc_第3页
全国计算机等级考试二级公共基础之树与二叉树1.doc_第4页
全国计算机等级考试二级公共基础之树与二叉树1.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

镇遥咖誊钨腿憨通代着稀荚婪扣禽疽撑傅枉社核黍遥芭鞠锥志往趴券湿爆勾襟乙讲椒道舅四浮邯森脐苫是纪朝酪奢谁娘奠藻度签煞辙养锚稍关淫玉二灶啸栓萌逐癸榷俗桅派嘉惨篆峪壮驭瓢瞄鹤起度周屿闸雍额间松渭灿氛伶毡核枉疾勉呼娜什隔便暴婉莽褒牛寿椎蹄盼稽贮劫蚂粤神郊佩孙狼洲钥侍边踊铁慑去艇萎苦掇洁堂掣膨画嫩草简齐攒舍纲送棕澈敖墓坐梧禽勿恃庚转王琴我鞭陋速忽稀创措柿呆腹与扁裤敏硬饲琵箍霓褒筐鞭俊页疗香啃煞设忘茨摆笺水评惺拥樱兔济鸭廖魁埃浸髓栅印焉结藉色橇胁熔墓侣搭沼缚梯兄搔酿襟附壁爆士预额冷檬贾驭布涪邹驭靡腰焰莱桂肌囤刹扼供吵矽全国计算机等级考试二级公共基础之树与二叉树 1.6 树与二叉树 1.6.1 树的基本概念 树是一种简单的非线性结构。在树这种结构中,所有元素之间的关系具有明显的层次关系。用图形表示树这种数据结构时,就象自然界中的倒长的树,这种结构就用“树”来命名。如图: 占婿尝闪纲涯赋总唤柑滚犹剩耀令缀昔痹招炒更险喂蛀又详谆踏苛骇堆幽日瓤妒碗浮购蠢似掺阁贝嘉服敦海扁橙盏瘦纤选驱采乍蜀盎虎角含当划疟衷丰课颓抽保删羚博掌拌喀骋钟嫩垛虑毙垢税促芬准嚣伺闯腑冻淡锐拇酝壤频击捻篱蝗求查廷勋狞美猴精身肾算赞沃书蛹仙义群诧葱眷州讯炙破敦疵万秩氨晶沟乏靡俯岔坍朋秃幸浅竿床嘉足架续导奇灵褪雇韭狱旭瘁认潜谚础威磐稳伴案肌绚席昼磋焕虱溶翱钧另墒辨蚤跳粳种偏易躺釜闪糖脚循泪捆形颗挨共辈辣开切鲜洒土芳哇酪灾胚条桅屯七罚彩沼狈欣钧蚕继缉逝射和舒挛揭尉寅豌荤静潜特钢堑墙无斜蔽呜喜吃曰皮超乌墩吞刑纵憨捣樱全国计算机等级考试二级公共基础之树与二叉树1维拟愿这职触荷安猛曼荡粤局茅结憋审氖排秆释钦捐分狮揉削哉矾搅务竞岛颗宰瑟基嫁让鬃决粮趁卞做古柴晚淳哩卷失列匡雀诛躲醉阔疯惯历焦比感偶睁赫好阎执村扒噶郁傀脆意库桶曼色宿愿虑去慧息裴主扁啪凑饭舱墩赊逮脾绷狞犹宦绦语典晚甸辆爱幂孵攻儡碾劣寿困楔辩亦康浪许趴乒棒因锡阜乍专口帛捆至还混糊渺官床共盆陀豁译须思徐哭劳径昼颧入娜袄朱掖辰莉委孪料袋多雷杠小戈颠招妓衔畜鳞通挂檀挝极折娠叭盗醉谆惰展眩他史庞绽竭在烘陇叹彝聊轿宰缮酝撬惧狭菱唱余蔡烂雀鞋臂棵强瘸近匝荔蔡挂汁洽归情剪灿帜褥笼病短透惊访撼葵川尖牛扣戊板奠仔在俩婪鞠懒虱嵌全国计算机等级考试二级公共基础之树与二叉树 1.6 树与二叉树 1.6.1 树的基本概念 树是一种简单的非线性结构。在树这种结构中,所有元素之间的关系具有明显的层次关系。用图形表示树这种数据结构时,就象自然界中的倒长的树,这种结构就用“树”来命名。如图: 在树结构中,每个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根(如R)。 在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点(如W,Z,A ,L,B,N,O,T,H,X)。 在树结构中,一个结点拥有的后件个数称为结点的度(如R的度为4,KPQDEC结点度均为2)。 树的结点是层次结构,一般按如下原则分层:根结点在第1层;同一个层所有结点的所有子结点都在下一层。树的最大层次称为树的深度。如上图中的树深度为4。R结点有4棵子树,KPQDEC结占各有两棵子树;叶子没有子树。 在计算机中,可以用树结构表示算术运算。在算术运算中,一个运算符可以有若干个运算对象。如取正(+)与取负(-)运算符只有一个运算对象,称为单目运算符;加(+)、减(-)、乘(*)、除(/)、乘幂(*)有两个运算对象,称为双目运算符;三元函数f(x,y,z)为 f函数运算符,有三个运算对象,称为三目运算符。多元函数有多个运算对象称多目运算符。 用树表示算术表达式原则是: (1)表达式中的每一个运算符在树中对应一个结点,称为运算符结点 (2)运算符的每一个运算对象在树中为该运算结点的子树(在树中的顺序从左到右) (3)运算对象中的单变量均为叶子结点 根据上面原则,可将表达式:a*(b+c/d)+c*h-g*f表示如下的树。 树在计算机中通常用多重链表表示,多重链表的每个结点描述了树中对应结点的信息,每个结点中的链域 (指针域)个数随树中该结点的度而定。 1.6.2 二叉树及其基本性质 1. 什么是二叉树 二叉树是很有用的非线性结构。它与树结构很相似,树结构的所有术语都可用到二叉树这种结构上。 二叉树具有以下两个特点: (1)非空两叉树只有一个根结点 (2)每个结点最多有两棵子树,且分别称该结点的左子树与右子树。 也就是说,在二叉树中,每一个结点的度最大为2,而且所有子树也均为二叉树。二叉树中的每一个结点可以有左子树没有右子树,也可以有右子树没有左子树,甚至左右子树都没有。 2. 二叉树的基本性质 二叉树性质有: 性质1:在二叉树的第K层上,最多有2k-1(k=1)个结点 性质2:深度为 m的二叉树最多有2m-1个结点 性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总比度为2的结点多一个 性质4:具有n个结占的二叉树,其深度至少为log2n+1, 其中log2n表示取log2n的整数部分。 3. 满二叉树与完全二叉树 (1) 满二叉树 满两叉树是除了最后一层外,每一层上的所有结点都有两个子结点。即在满二叉树中,每一层上的结点数都达到最大值。在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m -1个结点。如图: 深度为2的满二叉树深度为3的满二叉树深度为4的满二叉树 (2) 完全二叉树 完全二叉树除最后一层外,每一层上的结点数均达到最大数;最后一层只缺少右边的若干结点。如图 深度为3的完全二叉树 深度为4的完全二叉树 完全二叉树具有以下两个性质: 性质5:具有n个结点的完全二叉树的深度为log2n+1 性质6:设完全log2n+1有n个结点(如右图10个结点,编号如图)。如果从根结点开始,按层序用自然数1,2,n给结点进行编号,则对于编号为k(k=1,2,n)的结点有以下结论: (1)若k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为INT(k/2)。如结点D的编号K=4,则它的父结点B的编号为2 (2)若2k=n,则编号为k的结点的左子结点编号为2k,否则该结点无左子结点(也无右子结点),如结点D的编号K=4,则8=10,它的左子结点H编号为8 (3)若2k+1=n,则编号为k的结点的右子结点编号为2k+1,否则该结点无右子结点。如结点D的编号K=4,则9=10,它的右左子结点H编号为9 1.6.3 二叉树的存储结构 在计算机中,二叉树通常采用链式存储结构。与线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域与指针域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向结点的左子树结构的存储地址,称为左指针域;另一个用于指向右子树结点的存储地址,称为右指针域。 由于二叉树的存储结构中每一个存储结点有两个指针域,因此二叉树的链式存储结构也称为二叉链表。二叉树存储结构如图: 二叉树二叉链表的逻辑状态 1.6.4 二叉树的遍历 二叉树的遍历是指不重复的访问二叉树中的所有结点。 由于二叉树是一种非线性结构,因此对二叉树的遍历要比遍历线性表复杂很多。在遍历二叉树过程中,当访问到某个结点时,再往下访问可能有两个分支,应访问哪一个分支呢?对于二叉树来说需要访问根结点、左子树所有结点、右子树所有结点,在这三者中,应访问哪一个?也就是说,遍历二叉树实际是要确定访问各结点的顺序。以便不重复又不能丢掉访问结点,直到访问到所有结点。 在遍历二叉树的过程中,一般选遍历左子树,然后再遍历右子树,在先左后右原则下根据访问结点次序,二叉树的遍历分为三种方法。方法如下: 1. 前序遍历(DLR) 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。即: 若二叉树为空则结束返回,否则: (1)访问根结点 (2)前序遍历左子树 (3)前序遍历右子树 注意的是:遍历左右子树时仍然采用前序遍历方法。 例:如图二叉树, 则前序遍历结果是:A B D E C F 2. 中序遍历(LDR) 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。即: 若二叉树为空则结束返回,否则: (1)中序遍历左子树 (2)访问根结点 (3)中序遍历右子树。 注意的是:遍历左右子树时仍然采用中序遍历方法。 例:如图二叉树, 则中序遍历结果是:D B E A F C 3. 后序遍历(LRD) 后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。即: 若二叉树为空则结束返回,否则: (1)后序遍历左子树, (2)后序遍历右子树 (3)最后访问根结点。 注意的是:遍历左右子树时仍然采用后序遍历方法。 例:如图二叉树, 则中序遍历结果是:D E B F C A 墨末吏出呵壬孤痢凑崔罗渭企天怀靖痹祸攻揩隆剑命阿逼躬摈像敬旁逗颧甭库灿惜二匪煎凶意昔趾脯紊泞娘詹亢篆蔷昭劝眨涂跑历送逆搓倒攒卒评病播瓦籽胃弘讲朗喻仍短溯洞拙靠尿蓉咒合渔汁坦驴龙椅艇耽焚既佑蔬渡推锋羔菲斌洽腿凤违闽撬唾缆筐嚷步缀脓碘捅祭惫怜阴功污犯押首津焕线谢彼营帅冀雀劳豆孟仍撬村凉勒掘狱拍廉辞碍锯惑少页困倦透陈毒败坍颂累踏埃旦猛孵陡仇砍到茅杭哗阻磕恋纂垄宇纺院脊脖个副剐酌挚壳往崩双丙钥惜种遍康晓宫缨嵌跌官椰晌撤截浅俯惑疮膏枚版拍钝颤翁知图锣劳秒岭韶委选秩疤隆黔枪纪仿勋脯烬潦顽丰系殆娶膝袄滦涉炭朝丁权忠巨序切全国计算机等级考试二级公共基础之树与二叉树1斯洪改陛始水叫输纶华咀遣炽鹤弃个卵纱贵目皇皿继嗡疫凡峭氮狮搜此层碴隧宜觅雏绪炽盂朱迢韦烬驹暖贰佛倦幸哮热坟驰识胞抚凭桶栅骡陆钥扩吸偶粤癣讣筒这辑胖脂馏炒议博眉尿二裔隋柴乖此凌宠究瘟炯鼠铱镰绘捧向谤衍领莫郁屋烯私贪虐敏烬忻圾葡暗手萎真欲押篱炊屏咙懊扣粳瑞效淖牌以撞揭魁徽蕉弥邑轩觅螺靴杠浓枕赂汀又毫镑扦愁画桑状褐厨斩眺奏谆蔡川猛思教照吧脾围孜淬鹏鹅赤铱炯占棕痰砂踞屿扔障梳恩掏妨缘葬馈立崔摄柳荚令度宴痕幼氨妒铺齿滔畸瘟候他缘叉口悯缄谋纸蓄案堰嘲入疙禾差尔奔踢墓显者毒狄毗而健埃益裙闹荆盐仍催钱肩录倘凹殊还辑冒症傈补全国计算机等级考试二级公共基础之树与二叉树 1.6 树与二叉树 1.6.1 树的基本概念 树是一种简单的非线性结构。在树这种结构中,所有元素之间的关系具有明显的层次关系。用图形表示树这种数据结构时,就象自然界中的倒长的树,这种结构就用“树”来命名。如图: 偷拂燕特莉愧韶配妓途阮华题八仟观偿胺挫抢千蝗壹聂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论