首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C代码,将应填入(n) 处的字句写在对应栏内。 【说明】 函数print(BinTreeNode*t; DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此
阅读下列函数说明和C代码,将应填入(n) 处的字句写在对应栏内。 【说明】 函数print(BinTreeNode*t; DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此
admin
2009-02-15
77
问题
阅读下列函数说明和C代码,将应填入(n) 处的字句写在对应栏内。
【说明】
函数print(BinTreeNode*t; DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此算法采用后序的非递归遍历形式。因为退栈时需要区分右子树。函数中使用栈ST保存结点指针ptr以及标志tag,Top是栈顶指针。
【函数】
void print( BinTreeNode * t; DateType &x) {
stack ST; int i, top; top = 0;//置空栈
while(t! = NULL &&t-> data!= x || top!=0)
{ while(t!= NULL && t-> data!=x)
{
/*寻找值为x的结点*/
(1);
ST[top]. ptr = t;
ST[top]. tag = 0;
(2);
}
if(t!= Null && t -> data == x) { /*找到值为x的结点*/
for(i=1;(3);i ++)
printf("%d" ,ST[top]. ptr ->data);
else {
while((4))
top--;
if(top>0)
{
ST[top]. tag = 1;
(5);
}
}
}
选项
答案
(1)top++ (2)t=t->leftChild (3)i=top (4)top>0 && ST[top].tag=1 (5)t=ST[top].ptr->rightChild
解析
这个程序是一个典型二叉树后序遍历非递归算法的应用。算法的实现思路是:先扫描根结点的所有左结点并入栈;当找到一个结点的值为x,则输入出栈里存放的数据,这些数据就是该结点所有祖先结点;然后判断栈顶元素的右子树是否已经被后序遍历过,如果是,或者右子树为空,将栈顶元素退栈,该子树已经全部后序遍历过;如果不是,则对栈顶结点的右子树进行后序遍历,此时应把栈顶结点的右子树的相结点放入栈中。再重复上述过程,直至遍历过树中所有结点。
(1)、(2)空年在循环就是扫描根结点的所有左结点并入栈,根据程序中的栈的定义,栈空时top=0,因此在入栈时,先将栈顶指针加1,因此(1)空处应填写“top++”或其等价形式,(2)空是取当前结点的左子树的根结点,因此应填写“t=t->leftChild”。
(3)空所在循环是处理找到值为x的结点,那么该结点的所有祖先结点都存放在栈中,栈中的栈底是二叉树的根,而栈顶元素是该结点的父结点,因此,(3)空处应填写“i=top”。
(4)空所在循环是判断栈顶元素的右子树是否已经被后序遍历过,如果是,或者右子树为空,将栈顶元素退栈,这里要填写判断条件。 tag=0表示左子树,tag=1表示右子树,因此,(4)空处应填写“top> 0&&ST [top].tag=1”。
(5)空所在语句块是处理栈顶元素的右子树没有被后序遍历情况,则将右子树入栈,因此(5)空处应填写“t=ST[top].ptr->rightChild”。
转载请注明原文地址:https://www.kaotiyun.com/show/NbjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
文件abc.docx______。
在Excel2003中,A1到E6单元格的值如下图所示,若在A7单元格中输入函数“=COUNTA(A1:E6)”,按回车键后,则A7单元格显示的值为(44)。
以下设备中,(17)________________属于输出设备。
在Word2010窗口的编辑区,闪烁的一条竖线表示________________。
在浏览网页时,当鼠标指针移至某些文字或某些图片时,会出现手形状,通常是由于网页在这个地方做了(17)。
某金融企业正在开发移动终端非现场办公业务,为控制数据安全风险,采取的数据安全措施中并不包括______。
假设100个数据的平均值为82.31,其中有10个数据又发生了如下增减变化:+3.52,+2.87,-4.13,+5.34,-2.87,+2.50,-3.52,+4.23,-5.04,+0.10,则新的平均值变为(26)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Excel的A1单元格中输入函数“=IF(12,1,2)”,按回车键后,A1单元格中的值为()。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
随机试题
病人要求医生了解自己身份地位是病人要求医护提供必要的解释是
影响神经递质储存和释放的药物是影响核酸代谢的药物是
赵某1998年8月1日因盗窃罪曾被判处有期徒刑5年,刑罚执行3年后被假释。假释后,赵某长期未能找到一个令自己满意的工作,而现在从事的工作太辛苦,挣钱又太少,为过上有钱的日子,于是自2002年10月至2004年3月,赵某多次参与赌博,以此作为自己的第一职业。
某寺庙为县一级文物保护单位,是一可能发生固体物质火灾为主的灭火器配置场所。其大雄殿配置有推车式干粉灭火器,周围过道和用房配置有MFZ/ABC4手提式磷酸铵盐(ABC)干粉灭火器。该寺庙大雄殿的计算单元最小需配灭火级别为10A,有两个设置点,一个设置点配置了
能源折标准煤系数等于()。[2013年初级真题]
某船运公司为增值税一般纳税人,2014年3月购进船舶配件取得的增值税专用发票上注明价款360万元、税额61.2万元;开具普通发票取得的含税收入包括国内运输收入1287.6万元、期租业务收入255.3万元、打捞收入116.6万元。该公司3月应缴纳的增值税为(
社会主义集体主义原则的重要价值取向是集体利益高于个人利益。()
甲校学生的英语考试成绩总比乙校学生的英语考试成绩好,因此,甲校的英语教学方法比乙校的好。下列各项如果为真,除了哪项外其余各项都会削弱上述结论?
设SQLServer2008中某数据库在8点进行了完整数据库备份,12点和16点分别进行了事务日志备份,18点进行了完整数据库备份,20点进行了事务日志备份。21点45分数据库出现故障,事务日志未丢失。现需要将数据库恢复到故障点,下列做法能够达到该要求
A、Itisbetterforconceptualinformation.B、Itisbetterforcognitiveinformation.C、Itisbetterfordeductivethinking.D、It
最新回复
(
0
)