首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。 [说明] 一般的树结构常采用孩子—兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图1
请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。 [说明] 一般的树结构常采用孩子—兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图1
admin
2010-01-15
60
问题
请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。
[说明]
一般的树结构常采用孩子—兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图1-15(a)所示树的孩子—兄弟表示如图1-15(b)所示。
函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图1-15所示的树进行层序遍历时,节点的访问次序为D B A E F P C。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表1-11所示。
Bool、Status类型定义如下:
树的二叉链表节点定义如下:
[C函数程序]
选项
答案
这是一道要求读者掌握树结构的存储及遍历运算的程序分析题。本试题的解答思路如下。 队列可以保证访问节点时按照层次和自左至右的顺序。借助队列结构对树进行层序遍历时,每个节点都进出队列一次,节点出队列时进行访问。其过程是,首先令树根节点入队,若是森林(树根之间互为兄弟),接着则令其余树的根节点入队,然后在队列非空的情况下,队头节点出队,访问该节点同时令其孩子节点入队。以此类推,直到队列为空。 在试题所给出的[C函数程序]中,代码“InitQueue(&tempQ); (1) ;”完成初始化队列并令根节点入队列的功能,因此(1)空缺处所填写的内容是“EnQueue(&tempQ, root)”。 采用二叉树存储树结构时,其右分支表示兄弟关系,因此队头节点出队时,应沿右分支将队头节点的所有孩子依次加入队列。(2)空缺处所在的while循环完成处理第一棵树的兄弟节点的功能,因此,(2)空缺处所填写的内容是“brotherptr=brotherptr->nextbrother”。至此,就完成了第一层节点的处理。 (3)空缺处用于判断队列是否为空,即应填入“!IsEmpty(tempQ)”或其他等价形式。 使用队列或栈结构存储元素以实现某种运算的基本特点是,当队列非空时,应令队头元素出队列。因此(4)空缺处所填写的内容是“DeQueue(&tempQ,&ptr)”。 若一个节点不存在孩子,则其firstchild指针域为空,也无须令其孩子节点入队列。因此,(5)空缺处所填写的内容是“!ptr->firstchild”或其他等价形式。反之,若一个节点有孩子,则应首先令其第一个孩子节点入队列,然后通过右分支链使其他孩子节点入队列。因此,(6)空缺处所填写的内容是“EnQueue(&tempQ,ptr->firstchild)”,(7)空缺处所填写的内容是“brotherptr=brotherptr->nextbrother”。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/Y0DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
对于逻辑表达式((bl&b2)||in),需要_______个测试用例才能完成条件组合覆盖。
某财务系统在使用过程中,因个人所得税政策变化,需修改计算工资的程序。这种修改属于______维护。
计算机的用途不同,对其部件的性能指标要求也有所不同。以科学计算为主的计算机,对(1)要求较高,而且应该重点考虑(2)。
设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了学生亲属的姓名、与学生的关系以及联系电话。学生实体Students中的“
以下用例图中,A1和A2为(47)。A1和A2的关系为(48)。(47)
在分层体系结构中,(41)实现与实体对象相关的业务逻辑。在基于Java,EE技术开发的软件系统中,常用(42)技术来实现该层。(42)
在各种不同的软件需求中,(36)描述了用户使用产品必须要完成的任务,可以用UML建模语言的(37)表示。(37)
面向对象分析需要找出软件需求中客观存在的所有实体对象(概念),然后归纳、抽象出实体类。(26)是寻找实体对象的有效方法之一。
CPU中的数据总线宽度会影响(4)。
编译器和解释器是两种基本的高级语言处理程序。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等阶段,其中,___________并不是每个编译器都必需的。
随机试题
患者男,36岁。因“不慎被电锯锯伤右前臂,出血、疼痛剧烈2小时”来诊。x线片示:右桡骨下端骨挫伤。患者拇指不能屈曲,可能的诊断有
男,45岁。右上腹疼痛3天,伴有寒战,体温38.9℃,近一天发现巩膜发黄,相继出现皮肤黄染。提示可能发生的疾病是()
有关NK/T细胞淋巴瘤的描述中,哪项是错误的:
男童,8岁,因脑血管畸形入院待手术。晨起洗脸时突然倒地,昏迷,脉搏52次/min,双瞳不等大,左右侧分别约4mm、2mm,右侧锥体束征阳性。该患者考虑为
男性,42岁,自觉上腹不适、恶心,2小时前突然呕出大量鲜血,内有少许食物残渣,心悸,大汗,面色苍白。查体:神清,心率110次/分,血压80/60mmHg,肝肋下未及,脾肋下4指,肝掌(+)。实验室检查:Hb80g/L,WBC4×109/L,PLT50×1
下颌全口义齿需要缓冲的解剖标志是
患者,男,40岁。因反复机会性感染入院,检查发现患者伴发卡波济肉瘤,诊断应首先考虑
以风险为基点进行分类,风险管理成本不包括()。
甲是妇幼医院的护工,在医院工作多年。最近甲的女儿生了重病,急需用钱。甲利用在医院工作的便利,将婴儿乙偷走,并向乙的父母索要赎金10万元。甲的行为成立()
Whatclassdoesthewomangoto?
最新回复
(
0
)