首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。 【说明】 二叉树的宽度定义为含有结点数最多的那一层上的结点数。函数GetWidth()用于求二叉树的宽度。其思路是根据树的高度设置一个数组counter[],cou
阅读以下说明和C函数,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。 【说明】 二叉树的宽度定义为含有结点数最多的那一层上的结点数。函数GetWidth()用于求二叉树的宽度。其思路是根据树的高度设置一个数组counter[],cou
admin
2016-05-11
31
问题
阅读以下说明和C函数,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。
【说明】
二叉树的宽度定义为含有结点数最多的那一层上的结点数。函数GetWidth()用于求二叉树的宽度。其思路是根据树的高度设置一个数组counter[],counter
存放第i层上的结点数,并按照层次顺序来遍历二叉树中的结点,在此过程中可获得每个结点的层次值,最后从counter[]中取出最大的元素就是树的宽度。
按照层次顺序遍历二叉树的实现方法是借助一个队列,按访问结点的先后顺序来记录结点,离根结点越近的结点越先进入队列,具体处理过程为:先令根结点及其层次号(为1)进入初始为空的队列,然后在队列非空的情况下,取出队头所指示的结点及其层次号,然后将该结点的左子树根结点及层次号入队列(若左子树存在),其次将该结点的右子树根结点及层次号入队列(若右子树存在),然后再取队头,重复该过程直至完成遍历。
设二叉树采用二叉链表存储,结点类型定义如下:
typedef struct BTNode{
TElemType data;
struct BTNode *left,*right;
)BTNode,*BiTree;
队列元素的类型定义如下:
typedef struct {
BTNode*ptr;
int LevelNumbe r;
)QElemType;
GetWidth()函数中用到的函数原型如下所述,队列的类型名为QUEUE:
【C函数】
int GetWidth(BiTree root)
{
QUEUE Q;
QElemType a,b;
int width,height=GetHeight(root);
int i,*counter=(int*)calloc(height+l,sizeof(int)};
if( (1) ) return一1; /*申请空间失败*/
if(!root) return 0; /*空树的宽度为0*/
if( (2) ) return一1; /*初始化队列失败时返回*/
a.ptr=root; a.LeveiNumber=1;
if(!EnQueue(&Q,a))return一1 ; /*元素入队列操作失败时返回*/
while(!isEmpty(Q)){
if( (3) )return一1; /*出队列操作失败时返回*/
counter[b.LevelNumber]++;/*对层号为b.LevelNumber的结点计数*/
if(b.ptr->left){/*若左子树存在,则左子树根结点及其层次号入队*/
a.ptr=b.ptr一>left;
a.LevelNumber= (4) ;
if(!EnQueue(&Q,a))return一1;
}
i f(b.ptr一←right){/*若右子树存在,则右子树根结点及其层次号入队*/
a.ptr=b.ptr一←right;
a.LevelNumber= (5) ;
if(!EnQueue(&Q,a))return一1;
}
}
width:counter[1];
for(i=1;i<height+1;i++) /*求counter[]中的最大值*/
if( (6) ) width=counter
;
free(counter);
return width;
}
选项
答案
(1)!counter或0=counter或NULL=counter或等价表示 (2)!InitQueue(&Q) 或0=InitQueue(&Q) 或等价表示 (3)!DeQueue(&Q,&b)或0=DeQueue(&Q,&b) 或等价表示 (4)b.LevelNumber+1 或等价表示 (5)b.LevelNumber+1 或等价表示 (6)counter[i]>width 或等价表示
解析
本题考查数据结构实现和C语言基本应用。
考生需要认真阅读题目中的说明,以确定代码部分的处理逻辑,从而完成代码。
根据注释,空(1)处应填入“!counter”或其等价形式。
由于初始化队列的函数原型为“InitQueue(QUEUE*Q)”且返回值为0表示操作失败,因此调用该函数时实参应取地址,即空(2)处应填入“!InitQueue(&Q)”或其等价形式。
空(3)处需进行出队列操作,同时通过参数得到队头元素,根据说明,该空应填入“!DeQueue(&Q,&b)”或其等价形式。
出队操作后,得到的队头元素用b表示,根据队列元素的类型定义,其对应结点在二叉树中的层次号表示为b.LevelNumber,显然,其孩子结点的层次号应加1,因此空(4)和(5)处应填入“b.LevelNumber+1”。
从代码中可知变量width的作用是表示最大的层次编号,并通过顺序地扫描数组counter中的每一个元素来确定width的值,显然,空(6)处应填入“counter
>width”或其等价形式。
转载请注明原文地址:https://jikaoti.com/ti/zHW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
用户设置幻灯片放映时,不能做到的是(56)。
操作系统的功能不包括______。
在域名地址www.rkb.gov.cn中,“cn”属于______。
在Excel中,若单元格C5=1000、D5=50、C6=6000、D6=40,在单元格E5中输入公式“=C5*$D$5”,再将此公式复制到F6单元格中,则F6单元格的值为(54)。
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
编译程序的作用是将高级程序语言源程序翻译为(4)。
通常,网购产品需要依次进行以下操作步骤:浏览商品、放入购物车、生成订单、支付订单、完成交易。某网站对一个月内执行每一步操作的客户人数及其比例做了统计(按浏览商品的人数比例为100%进行统计),制作了如下的漏斗图(只有20%的浏览商品者实际完成了交易)。
在Word文档中某一段落的最后一行只有一个字符,若想把该字符合并到上一行,___________不能做到。
阅读以下说明,回答问题1至问题5,将解答填入对应栏内。[说明]某大学要拟建一个小型局域网,如图10-5所示,PCI、PC3、PC5的IP地址分别为10.244.80.2,10.244.80.3,10.244.80.4子网掩码是255.255
请根据网页显示效果图的网页中的元素说明,将HTML文本中上处的解答填入对应的解答栏内。请根据网页显示效果图的网页中的元素说明,将HTML文本中上处的解答填入对应的解答栏内。[说明]下图是一个关于Sony公司2006年两款DV产
随机试题
男性,30岁,贫血已2年,有肝炎史。体检:皮肤有散在的少量紫癜,肝、脾肋下未及。检验:红细胞2.0×1012/L,血红蛋白50g/L,白细胞1.5×109/L,网织红细胞0.1%;骨髓检查示细胞增生活跃,红系及粒系多为晚期阶段,巨核细胞缺如:HBsAg(
A.艾迪生病B.侏儒症C.库欣综合征D.肢端肥大症E.性幼稚症皮质醇分泌升高可致
某鸡场散养的4周龄仔鸡,多数出现头、翅下垂,眼半闭,步态蹒跚,食欲缺乏,下痢,排淡绿色恶臭粪便等症状;部分病鸡冠、肉髯发绀,呈暗黑色。防治该病的药物是
实际估价中,评价某建筑物的完损状况时,不需要考虑的实物因素是()。
钢表链
下列某银行客户经理的行为中,违反了《银行业从业人员职业操守》中“监管规避”原则的是()
听起来比较刺耳,彼此不很融合的音程叫_________。
控制工作的重要性体现在()。
在WindowsServer2003系统中,用户分为本地用户和域用户,本地用户的安全策略用“本地安全策略”设置,域用户的安全策略通过活动目录管理。在“本地安全设置”中启用了“密码必须符合复杂性要求”功能,如图4-1所示,则用户“ABC”可以采用的密码
WhenChristianBernard,aSouthAfricandoctor,performedthefirsthumanhearttransplantin1967,theresultwasaworldwidem
最新回复
(
0
)