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

阅读下列说明和c函数代码,将应填入 (n)处的字句写在答题纸的对应栏内。【说明】对二叉树进行遍历是

题目

阅读下列说明和c函数代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明】

对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二叉树的每个结点,且每个结点仅访问一次的过程。函数InOrder。()借助栈实现二叉树的非递归中序遍历运算。

设二叉树采用二叉链表存储,结点类型定义如下:

typedef struct BtNode{

ElemTypedata; /*结点的数据域,ElemType的具体定义省略*/

struct BtNode*ichiid,*rchild; /*结点的左、右弦子指针域*/

)BtNode,*BTree;

在函数InOrder()中,用栈暂存二叉树中各个结点的指针,并将栈表示为不含头结点

的单向链表(简称链栈),其结点类型定义如下:

typedef struct StNode{ /*链栈的结点类型*/

BTree elem; /*栈中的元素是指向二叉链表结点的指针*/

struct StNode*link;

}S%Node;

假设从栈顶到栈底的元素为en、en-1、…、e1,则不含头结点的链栈示意图如图5—5

所示。

【C函数】

int InOrder(BTree root) /*实现二叉树的非递归中序遍历*/

{

BTree ptr; /*ptr用于指向二又树中的结点*/

StNode*q; /*q暂存链栈中新创建或待删除的结点指针+/

StNode*stacktop=NULL; /*初始化空栈的栈顶指针stacktop*/

ptr=root; /*ptr指向二叉树的根结点*/

while( (1 ) I I stacktop!=NULL){

while(ptr!=NULL){

q=(StNode*)malloc(sizeof(StNode));

if(q==NULL)

return-1;

q->elem=ptr;(2) ;

stacktop=q; /*stacktop指向新的栈顶*/

ptr=(3 ) ; /*进入左子树*/

}

q=stacktop; (4) ; /*栈顶元素出栈*/

visit(q); /*visit是访问结点的函数,其具体定义省略*/

ptr= (5) ; /*进入右子树*/

free(q); /*释放原栈顶元素的结点空间*/

}

return 0;

}/*InOrder*/

参考答案
正确答案:(1)ptr! =NULL或ptr! =0或ptr(2)q->link=stacktop(3)ptr->lchild(4)stacktop=stacktop->link或stacktop=q->link(5)q->elem->rchild
(1)ptr! =NULL或ptr! =0或ptr(2)q->link=stacktop(3)ptr->lchild(4)stacktop=stacktop->link或stacktop=q->link(5)q->elem->rchild 解析:对非空二叉树进行中序遍历的方法是:先中序遍历根节点的左子树,然后访问根节点,最后中序遍历根节点的右子树。从以上算法的执行过程可知,从树根出发进行遍历时,递归调用InOrderTraversing(root-LeftChild)使得遍历过程沿着左孩子分支一直走向下层节点,直到到达二叉树中最左下方的节点(设为f)的空左子树为止,然后返回节点,再由递归调用InOrder Traversing(root->RightChild)进入f的右子树,并重复以上过程。在递归算法执行过程中,辅助实现递归调用和返回处理的控制栈实际上起着保存从根节点到当前节点的路径信息。用非递归算法实现二叉树的中序遍历时,可以由一个循环语句实现从指定的根节点m发,沿着左孩子分支一直到头(到达一个没有左子树的节点)的处理,从根节点到当前节点的路径信息(节点序列)可以明确构造一个栈来保存。
看了阅读下列说明和c函数代码,将应...的网友还看了以下:

近两年,牛肉价格一直高位运行,受养殖成本上升等因素的影响,全国肉牛存栏数量减少,尤其是母畜存栏持续 政治 2020-05-17 …

试题四(14 分) 回答问题 1 至问题 3,将解答填入答题纸的对应栏内。 [问题1](5 分) 某 计算机类考试 2020-05-26 …

统计表从形式上看,其组成部分包括( )。A.总标题B.横栏标题C.纵栏标题D.指标数值E.水 财会类考试 2020-06-07 …

IF函数题求助如果高等数学、大学英语成绩均大于或等于75在备注栏内给出信息“有资格”,否则给出信息 数学 2020-06-18 …

求excel公式:比较大小后显示相应符号的公式是什么如果A栏没有数据显示空白,如果B栏没有数据也显 其他 2020-06-18 …

配对阅读。左栏是五个人物的相关信息,右栏是七个网站的介绍。请为每个人选择合适的网站,并将答案写在题 英语 2020-06-18 …

配对阅读。左栏是五个人物想要做的事。右栏是七个节目、地方和服务的简介。请为每个人选择最合适的节目、 英语 2020-06-18 …

已知某猪场的猪的数量每一年都在上一年存栏数的基础上增加一倍,并且每年卖出500头.该猪场1998年 数学 2020-06-20 …

从Ⅱ栏中找出Ⅰ栏中各句相对应的答语。(5分)Ⅰ栏Ⅱ栏小题1:WelcometoFujian.A.N 英语 2020-07-11 …

一道函数题求解1.一个旅游团来到某旅游景点,看到售票处的公告栏如下所示.请根据公告栏内容回答下列问题 数学 2020-12-19 …