首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图15-1(a)所示的树的孩子.兄弟表示如图15一1(b)所示。 函数LevelTraVerse()的
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图15-1(a)所示的树的孩子.兄弟表示如图15一1(b)所示。 函数LevelTraVerse()的
admin
2017-08-31
50
问题
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图15-1(a)所示的树的孩子.兄弟表示如图15一1(b)所示。
函数LevelTraVerse()的功能是对给定树进行层序遍历。例如,当对图15.1(a)中的树进行层序遍历时,结点的访问次序为DBAEFPC。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表15一1所示。
Bool、Status类型定义如下:
typedef enum{FALSE=0,TRUE=1)Bool;
typedef enum{OVERFLOW=一2,UNDERFLOW=一1,ERROR=0,OK=1}Status;
树的二叉链表结点定义如下:
typedef struct Node{
char data;
struct Node*firstchild,*nextbrother;
}Node,*TreeNode;
【函数代码】
Status LevelTraverse(TreeNode root)
{/*层序遍历树,树采用孩子一兄弟表示法,root是树根结点的指针*/
Queue temQ ;
TreeNode ptr, brOtherptr;
if(!root)
return ERROR;
InitQueue(&tempQ);
(1);
brotherptr=root一>nextbrother;
while( brotherptr ){
EnQueue( &tempQ, brotherptr);
(2),
}/*end-while*/
while( (3) ){
(4),
printf(”%c\t”,ptr一>data);
if( (5) )continue;
(6),
brotherptr=ptr一>firstchild一>nextbrother;
while(brotherptr){
EnQueue(&tempQ,brotherptr);
(7);
}/*end—while*/
}/*end-while*/
return OK;
}/*LevelTraverse*/
选项
答案
(1)EnQueue(&tempQ,root)。 (2)brotherptr=brotherptr->nextbrother。 (3)!IsEmpty(tempQ)。 (4)DeQueue(&tempQ,&ptr)。 (5)!ptr->firstchild。 (6)EnQueue(&tempQ,ptr->firstchild)。 (7)brotherptr=brotherptr->nextbrother。
解析
解答此题的关键在于理解用队列层序遍历树的过程。算法的流程是这样的:首先将树根结点入队,然后将其所有兄弟结点入队(当然,由于是根结点,故无兄弟结点);完成这一操作以后,便开始出队、打印;在打印完了之后,需要进行一个判断,判断当前结点有无孩子结点,若有孩子结点,则将孩子结点入队,同时将孩子结点的所有兄弟结点入队;完了以后继续进行出队操作,出队后再次判断当前结点是否有孩子结点,并重复上述过程,直至所有结点输出。
这一描述可能过于理论,难以理解,接下来以本题为例来说明此过程。首先将树根结点D入队,并同时检查是否有兄弟结点,对于兄弟结点应一并入队。这里的D没有兄弟结点,所以队列此时应是:
D
接下来执行出队操作。D出队,出队以后检查D是否有子结点,经检查,D有子结点B,所以将B入队,同时将B的兄弟结点:A和E按顺序入队。得到队列:
B
A
E
接下来再执行出队操作。B出队,同时检查B是否有子结点,B无子结点,所以继续执行出队操作。A出队,同时检查A是否有子结点,A有子结点F,所以将F入队,同时将F的兄弟结点P入队。得到队列:
E
F
P
接下来再次执行出队操作。E出队,E有子结点C,所以C入队。得:
F
P
C
接下来再次执行出队操作。F出队,F无子结点,继续出队操作,P出队,仍无子结点,最后C出队,整个过程结束。
通过对算法的详细分析,现在便可轻松得到答案。(1)应是对根结点root执行入队操作,即.EnQueue(&tempQ,root)。(2)在一个循环当中,循环变量是brotherptr,此变量无语句对其进行更新,所以(2)必定是更新brotherptr。结合前面的算法分析可知(2)应填:brotherptr=brotherptr->nextbrother。(3)、(4)加上后面的语句“printf(“%c\t”,ptr->data);”是控制数据的输出,这些数据应是从队列中得到,所以此处必有出队操作,同时在出队之前应判断队列是否为空,所以(3)、(4)填:!IsEmpty(tempQ)和DeQueue(&tempQ,&ptr)。(5)实际上是问“在什么情况下,要持续进行出队操作?”,前面的算法分析中已指出:若出队结点无子结点,则继续进行出队操作,所以(5)填!ptr->flrstchild。(6)和(7)所在的语句段的功能是将刚出队结点的子结点及其兄弟结点入队,所以(6)填:EnQueue(&tempQ,ptr->firstchild)。(7)和(2)相同,填brotherptr=brotherptr->nextbrother。
转载请注明原文地址:https://kaotiyun.com/show/eODZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?限制MailUser邮件主机里所有用户接收的单个邮件的大小不超过5MB,如何配置?
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。处理Web页面大致可分为3个步骤,原理如图8-2所示,域名是www
阅读以下有关网络规划的叙述,回答问题1、问题2和问题3。网络工程是一项复杂的系统工程,一般可分为网络规划、网络设计、工程实施、系统测试验收和运行维护等几个阶段。网络规划是在需求分析的基础上,进行系统可行性分析和论证,以确定网络总体方案。网络规划阶段
从工作的频段、数据传输速率、优缺点以及它们之间的兼容性等方面,对IEEE802.11a、IEEE802.11b和IEEE802.11g进行比较。1.将(1)处空缺设备的名称填写在相应位置。
如果在网络设计过程中划分了很多VLAN,则可采用VTP来简化其管理。交换机管理IP地址只能创建在(1)中,而VTP信息只能在(2)端口上传播。共享相同VLAN数据库的交换机构成一个(3)。不同交换机平台、不同的IOS版本支持的VLAN数量不同,从图6-18
根据该单位防火墙与外部网络相关的网络连接参数,请将以下命令行中(1)~(4)空缺处的内容填写完整,以完成对防火墙相应的网络接口进行地址初始化的配置。FireWall(config)#ipaddressinside(1)(2)
某公司申请到的IP地址为193.136.99.0,如图7-4所示,为了便于管理,需建立4个子网(要求每个子网的掩码必须相同),请回答如下问题。
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。数据库系统存储了大量的数据,在发生意外的情况下,为了确保数据能够尽可能准确地恢复,数据库系统提供了备份和恢复的功能。通常,数据库管理系统都提供了全部数
假如有一台PC连接在如图10-1所示的交换机(10/100M自适应的交换机)上,通信正常,但是将100M的网卡连到交换机上时显示红灯,通信不正常,请分析故障原因并给予解决。交换机设置了两个VLAN,在同一VLA_N内的机器不在同一网段上,它们可以通信吗
随机试题
WhatAffectstheSizeofWorkforceLaborforceisdefinedasbeingthetotalnumberofpeoplewhoareavailabletoworkande
爱德华创造性的组织思想ABC公司是一家拥有30万名员工、116家分公司、年销售额高达480亿美元、业务遍布世界各地的跨国集团公司。这家公司经常性地将业务从一个国家转换到另一个国家,而它又试图使其各项经营都能共享技术和产品。如何对此加以有效地组织?
用Word编辑文档时插入图像的方式有两种,一类相当于文字,必须在有插入点的地方才能插入,称为________式,一类是可以插入到文档的任何位置,可以实现图文混排,称为________式
功效清热解毒、息风止痉、清肝明目的药是
下列哪项不是急性胰腺炎的手术适应症
A.伞形科B.防风C.小秦艽D.麻花艽E.徐长卿
对于同质产品或需求上共性较大的产品,一般宜实行_______。
中国证监会于4月在对甲上市公司(以下简称甲公司)进行例行检查时,发现以下事实:(1)甲公司董事会于4月1日发布公告,甲公司将于5月18日召开股东大会年会。根据董事会的公告,除例行事项提交本次股东大会年会审议外,还将就下列事项提交本次股东大会以普通
河南省经济工作会议上,领导提出“要站在老百姓的立场看问题”,对于这种观点,你怎么看?
下列权利中,只能由自然人享有的是( )。
最新回复
(
0
)