早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。[说明] 一般的树结构

题目

请认真阅读以下函数说明、图及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(&tempQptr->firstchild)”(7)空缺处所填写的内容是“brotherptr=brotherptr->nextbrother”。
这是一道要求读者掌握树结构的存储及遍历运算的程序分析题。本试题的解答思路如下。 队列可以保证访问节点时按照层次和自左至右的顺序。借助队列结构对树进行层序遍历时,每个节点都进出队列一次,节点出队列时进行访问。其过程是,首先令树根节点入队,若是森林(树根之间互为兄弟),接着则令其余树的根节点入队,然后在队列非空的情况下,队头节点出队,访问该节点同时令其孩子节点入队。以此类推,直到队列为空。 在试题所给出的[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”。
看了请认真阅读以下函数说明、图及C...的网友还看了以下:

计算机网络中常用的拓扑结构主要有()。A.总线结构、星形结构、树形结构、环形结构B.总线结构、网状结 计算机类考试 2020-05-24 …

计算机网络拓扑结构主要有()。A.总线结构、星形结构、树形结构、环形结构B.总线结构、网状结构、树形 计算机类考试 2020-05-24 …

〖高中语文〗这句话是否为病句:从现在至2015年这段时间内,国际能源...〖高中语文〗这句话是否为 语文 2020-06-28 …

在橡胶工业中,制造橡胶要经过硫化工艺,将顺丁橡胶的线型结构连接为网状结构,在制备高吸水性树脂时也要 化学 2020-06-30 …

古文判断句中的“为”字到底是不是判断词?动词谓语句不是判断句一种认为:动词谓语句不是判断句尤其是用 语文 2020-07-01 …

从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么,并指出树 数学 2020-07-14 …

仿句再仿两句例句:如果爱是奔腾的热血,是跳跃的心灵,那么,我认为这就是对于国家的崇高的爱.要1.仿结 语文 2020-11-11 …

()不是vb提供的程序控制结构a.模块结构b.顺序结构c.重复结构d.循环结构上面错了。a.选择结构 其他 2020-12-14 …

简述树与它转化的二叉树(孩子兄弟表示法)的关系,并说明转化后的二叉树的特点。数据结构中树可以用孩子兄 其他 2021-01-02 …

[钱塘湖春行]白居易(诗我就不打出来了啊```)白居易这首脍炙人口的春行诗,除了结构、描写、意境写得 其他 2021-02-05 …