首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假定用两个一维数L[N]和R[N]作为有N个结点l,2,…,N的二叉树的存储结构。L[i]和R[i]分别指示结点i的左儿子和右儿子;L[i]=0(R[i]=0)表示i的左(右)儿子为空。试写一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i的
假定用两个一维数L[N]和R[N]作为有N个结点l,2,…,N的二叉树的存储结构。L[i]和R[i]分别指示结点i的左儿子和右儿子;L[i]=0(R[i]=0)表示i的左(右)儿子为空。试写一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i的
admin
2019-08-15
46
问题
假定用两个一维数L[N]和R[N]作为有N个结点l,2,…,N的二叉树的存储结构。L
和R
分别指示结点i的左儿子和右儿子;L
=0(R
=0)表示i的左(右)儿子为空。试写一个算法,由L和R建立一个一维数组T[n],使T
存放结点i的父亲;然后再写一个判别结点U是否为结点V的后代的算法。
选项
答案
由指示结点i左儿子和右儿子的两个一维数组L[i]和R[i],很容易建立指示结点i的双亲的一维数组T[i],根据T数组,判断结点U是否是结点V后代的算法转为判断结点V是否是结点U的祖先的问题。 int Generation(int U,V,N,L[],R[],T[]){ //L[]和R[]是含有N个元素且指示二叉树结点i左儿子和右儿子的一维数组 //本算法据此建立结点i的双亲数组T,并判断结点U是否是结点V的后代 int i; for(i=1:i<=N;i++)T[i]:0; //T数组初始化 for(i=1;i<=N;i++) //根据L和R填写T if(L[i]!=0)T[L[i]]=i; //若结点i的左子女是L,则结点L的双亲是结点i for(i=1;i<=N;i++) if(R[i]!=0)T[R[i]]=i; //i的右子女是R,则R的双亲是i int parent=U; //判断U是否是V的后代 while (parent!=V&&parent!=0)parent=T[parent]; if(parent==V){printf(”结点u是结点V的后代”);return(1);} else{ printf(”结点U不是结点V的后代”);return(0);{ }//结束Generation
解析
转载请注明原文地址:https://kaotiyun.com/show/QcCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
马克思说:巴黎公社“只不过是在特殊条件下的一个城市起义”。其含义是()。
略论中国近现代历史上的“军阀”问题。
1947年,刘邓大军千里跃进大别山,揭开了战略反攻的序幕。 据此回答问题:之所以把中原地区作为反攻的方向,主要是由于该地区()
周王室的两大官僚系统是()。
1980年1月,邓小平在《目前的形势和任务》提出的中国人民长期奋斗的三件大事是()。
北宋在统一南方割据势力的过程中特设(),把征南所得的财富统一存放,以作日后恢复幽燕之费。
【《中国之命运》】南京大学2002年综合卷真题;南京大学2003年中国近现代史真题;武汉大学2003年中华民国史真题;南京大学2004年中国近现代史真题;中国社科院2014年中国近现代史真题;南京大学2015年中国近现代史基础真题
多道程序设计是指()。
对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,为实现编号可采用的遍历是()。
下列不属于设计实时操作系统的主要追求目标的是()。
随机试题
实际碳酸氢盐(AB)=标准碳酸氢盐(SB),且二者均大于正常值提示
腹股沟阴囊疝常见的内容物不可能是()。
无行为能力人,若要实施终止妊娠或者结扎手术,应当经其()同意。
在合同履行中,实际违约可以分为()
中央银行通过提高存款准备金率,可以发挥的作用是()。
某上市公司发生的下列事项中,应当提交临时报告并予公告的是()。
试述法家的教育思想。
(2013年真题)简述法的规范作用与法的社会作用的关系。
道德是反映社会经济关系的特殊意识形态,具体表现在()
(2011年试题,三)求方程karctanx一x=0不同实根的个数,其中k为参数.
最新回复
(
0
)