首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图15-1(a)所示的树的孩子-兄弟表示如图15-1(b)所示。 。 函数LevelTraverse(
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图15-1(a)所示的树的孩子-兄弟表示如图15-1(b)所示。 。 函数LevelTraverse(
admin
2015-06-03
82
问题
一般的树结构常采用孩子-兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图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 *firstchiid,*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->firstchild。(6)和(7)所在的语句段的功能是将刚出队结点的子结点及其兄弟结点入队,所以(6)填:EnQueue(&tempQ,ptr->firstchild)。(7)和(2)相同,填brotherptr=brotherptr->nextbrother。
转载请注明原文地址:https://kaotiyun.com/show/FdDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
如果防火墙采用.NAPT技术,则该单位至少需要申请(1)个可用的公网地址。1.ACL默认执行顺序是(5),在配置时要遵循(6)原则、最靠近受控对象原则、以及默认丢弃原则。(5)、(6)备选项(A)最大特权(B)最小特权(C)随机选取(D)自左到右
阅读以下关于在Linux系统中配置Apache服务器的说明,回答问题1至问题3,将解答填入解答栏内。【说明】在Linux系统中采用Apache配置Web服务器。Apache服务器提供了丰富的功能,包括:目录索引、目录别名、虚拟主机、HTTP日志报
请在(1)~(4)空白处填写恰当的内容。DHCP的工作过程是:1)IP租用请求。DHCP客户机启动后,发出一个DHCPDISCOVER消息,其封包的源地址为(1),目标地址为(2)。2)IP租用提供。当DHCP服务器收到DHCPDI
阅读以下关于动态主机配置协议(DHCP)的说明,回答问题1至问题4。【说明】在小型网络中,IP地址的分配一般都采用静态方式,需要在每台计算机上手工配置网络参数,诸如IP地址、子网掩码、默认网关和DNS等。在大型网络中,采用DHCP完成基本网络配置
阅读以下说明,回答问题1至问题3,将解答填入对应的解答栏内。【说明】某校园网申请到了C类网络地址块202.115.0.0/24~202.115.3.0/24。根据网络规划需求,网络中心、图书馆、教学实验楼以及行政办公楼的各个部门需划分到不同网段。
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?依据ISO/OSI参考模型对无线扩频网络设备进行分类,可以分为哪几种类型?用无线扩频设备实现网络互连需要何种配套设备
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?若采用电视铜缆接入计算机主干网络,用户端需增添什么设备?网络通信速率为多少?
阅读以下关于网络地址转换(NAT)的技术说明,结合网络拓扑图回答问题1至问题3。【说明】网络地址转换(NAT)技术可用来缓解IP地址短缺问题和实现TCP负载均衡功能。动态地址翻译技术在子网外部使用少量的全局地址,通过路由器进行内部和外部地址的转换
阅读以下某单位宽带网络接入的技术说明,根据要求回答问题1至问题6。【说明】接入网(AN)泛指用户网络接口(UNI)与业务节点接口(SNI)间实现传送承载功能的实体网络。其目标是建立一种标准化的接,方式,以一个可监控的接入网络,使用户能够获得话音、
随机试题
软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和()。
That’sthebestspeech______.
施工中发生持续不可抗力,承包人应每隔7天向工程师报告一次受灾情况,并于不可抗力事件结束后( )天内,向工程师提交清理和修复费用的正式报告及有关资料。
公司与乙公司签订一个供货合同,约定由乙公司在一个月内向甲公司提供一级精铝锭100吨,价值130万元,双方约定如果乙公司不能按期供货的,每逾期一天须向甲公司支付总货款的0.1%作为违约金。由于组织货源的原因,乙公司在两个月后才向甲公司交付了100吨精铝锭,甲
(2017年)甲公司是一家玩具生产企业,1998年以来,该公司依靠其成本优势将产品成功打入了东南亚、欧洲和北美市场。去年,为了进入F国市场,甲公司在该国第二大城市经济开发区建设成立了一家工厂,并顺利将其产品销往F国各地。甲公司采取的战略类型是()。
某市教育局每年都将大量的经费和资源分配给当市升学率高的学校,这种做法()。
2009年全国研究机构R8LD经费995.9亿元,是2000年的3.9倍,年平均增长16.2%。按活动类型分,基础研究经费110.6亿元,占11.1%;应用研究经费350.9亿元,占35.2%;试验发展经费534.4亿元,占53.7%。基础研究、应用研究和
图示方法是几何学课程的一种常用方法。这种方法使得这门课比较容易学,因为学生们得到了对几何概念的直观理解,这有助于培养他们处理抽象运算符号的能力。对代数概念进行图解相信会有同样的教学效果,虽然对数学的深刻理解从本质上说是抽象的而非想象的。上述议论最不可能支持
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。【说明】n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。算法的基本思想如下:将第i个皇
Therainwassoheavythatthemanwaswettotheskin;hiswholebodywas______andtrembling.
最新回复
(
0
)