森林的孩子兄弟表示法的设计_第1页
森林的孩子兄弟表示法的设计_第2页
森林的孩子兄弟表示法的设计_第3页
森林的孩子兄弟表示法的设计_第4页
森林的孩子兄弟表示法的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、森林儿童兄弟表达的设计和实现,奇异的水道,基本要求,(1)设计森林儿童兄弟储存结构。要求森林的盘根、重根、后根巡回。(2)森林的大小(森林中的树数)、森林的高度(森林的最大高度)、森林中树叶的数量(森林中所有树的叶子的总和)。(3)在森林的儿童兄弟链表示中设计和实现了相应的函数,得出了相应二叉树的高度和叶数。森林的儿童兄弟存储结构,森林的节点类模板定义与树的节点类模板定义相匹配。template struct childsiblingforestnode t data;childsiblingforestnode * first child;childsiblingforestnode * n

2、ext sibling;childsiblingforestnode();childsiblingforestnode (tval,childsiblingforestnode * fchild=null,childsiblingforestnode * n sibling=null否则,请1)访问森林中第一棵树的根节点。2)第一根穿过第一棵树根节点的子树林;3)首先巡回第一棵树以外的其他树组成的森林。右图中显示的森林是a、b、c、d、e、f、g、h、j、i、森林第一根通过的递归算法,第一个是template void childsiblingforest 336033333333333333

3、2)访问森林中第一棵树的根节点。3)中根巡回森林,除了第一棵树外,由其他树组成。右图中所示的森林是在中间根巡回后获得的。b、c、d、a、f、e、j、h、i、g,森林中层根巡回的递归算法void(* visit)(const t t/medium root是由除第一棵树外的其他树组成的2)后根穿过除第一棵树外的其他树组成的森林。3)访问森林中第一棵树的根节点。右图所示的森林是后勤部巡回后d、c、b、f、j、i、h、g、e、a,森林后勤部巡回的递归算法,template void childsiblingforest 336033333333333332)如果队列不为空,请退出队列并访问。3) 2

4、)由已出队节点的子树组成的森林,分1)和2)阶段进行。右图中显示的森林是a、e、g、b、c、d、f、h、i、j,表示存储结构中的树数,只需将计数从第一棵树的根节点移动到右兄弟。这是儿童兄弟代表树林的画。templateintchildsiblingforest 33603360 treenum()constchildsiblingforestnode * cur=root;int num=0;while(cur!=null)num;cur=cur-nextsibling;return num、林的高度(林中树的最大高度)、林的高度,先求出每棵树的高度,然后求出林的高度。template int

5、 childsibling forest 33603360 tree heighthelp(childsiblingforestnode * r)constint _ max=0;查找实现的树高度的递归算法if(r-first child=null)return 1;for(自动i=r-first child;i!=nulli=i-nextsibling)_ max=max(tree heighthelp(i)1,_ max);return _ max,森林高度(林中树的最大高度),template int childsibling forest : height()const childsi

6、blingforestnode * p;int maxheight=0,heightfor(p=root);p!=nullp=p-next sibling)height=tree height help(p);/求树高度的递归函数maxheight=(maxheight height)?height : maxheightreturn maxheight,森林中的树叶数(森林中所有树木的树叶总数),森林中的树叶数也能拯救高度。首先,拯救森林中的每棵树是树叶数,然后具荷拉森林中的树叶数。(莎士比亚,林中的叶数、叶数、叶数、叶数、叶数、叶数、叶数)寻找树叶的递归算法为templateint chi

7、ldsiblingforest 3360: leftnumhelp(childsiblingforest 33603: leftnumhelp)if(!r-first child)return 1;int sum=0;for(自动i=r-first child;i!=nulli=i-next sibling)sum=left numhelp(i);return sum,森林中的树叶数(森林中所有树的树叶总数),森林中的树叶数templateintchildsiblingforest :3: left num()constintsum=0;自动cur=根;while(cur!=null)总计=l

8、eft numhelp(cur);cur=cur-nextsibling;return sum,如果相应二叉树的高度,相应二叉树的高度递归算法思想,相应二叉树的根为空,则返回0。否则,调用二进制树左侧子树的高度递归算法,以获得左侧子树的高度。对与二叉树相对应的右子树调用高度递归算法,以获得左子树高度。比较左侧和右侧子树的高度。实现相应的二叉树高度递归算法,template int childsibling forest 3360: bintree heighthelp(childsiblingforestnode * r)constif(r=,对相应二叉树的叶数,对相应二叉树的叶递归算法的思考,如果相应的二叉树根为空,则返回0。否则,对与二进制树相对应的左侧子树调用叶数递归算法,以查找左侧子叶数。对与二进制树相对应的右子树调用叶树递归算法,以查找左子叶数。添加左侧和

温馨提示

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

评论

0/150

提交评论