首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假定用两个一维数组L[N]和R[N]作为有N个结点1,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个结点1,2,…,N的二叉树的存储结构。L[i]和R[i]分别指示结点i的左儿子和右儿子;L[i]=0(R[i]=0)表示i的左(右)儿子为空。试写一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i
admin
2017-01-04
42
问题
假定用两个一维数组L[N]和R[N]作为有N个结点1,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的后代”);retum(1);} else{prinff(”结点u不是结点V的后代”);retum(0);} }//结束Generation
解析
转载请注明原文地址:https://kaotiyun.com/show/kLRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
共产国际“七大”决定加强各国共产党的自主性,主要是由于()。
“瓜步之战”发生在下列哪两个政权之间?()
武昌起义后,全国革命形势发展的同时也潜伏着失败的危机,这主要是由于()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
武昌起义是由哪个团体发动的?()
凡尔赛体系是由一系列条约组成的,其中战胜国与匈牙利签订的条约为()。
随机试题
AIDS属于哪种疾病
对胸腔积液患者,胸穿抽出有臭味混浊液体,此时应该对胸液作何检查以明了病因
根据《药品不良反应报告和监测管理办法》,药品生产、经营、使用单位中应当设立专业机构并有专职人员(不得兼职)负责本单位不良反应报告和监测管理工作的是()。
为消除由于温度变化引起的危险应力,矩形硬铝导体的直线段一般每隔()m左右安装一个伸缩接头。
某市烟草集团公司属增值税一般纳税人,持有烟草批发许可证,2010年3月购进已税烟丝800万元(不含增值税),委托M企业加工甲类卷烟500箱(250条/箱,200支/条),M企业每箱0.1万元收取加工费(不含税),当月M企业按正常进度投料加工生产卷烟200箱
俗话说:“一山难容二虎。”从管理的角度看,对这句话最合适的理解是()。
-1,2,3,11,124,()
根据我国《代表法》的规定,人民代表大会代表享有的权利有()。
A、 B、 C、 D、 C
【B1】【B16】
最新回复
(
0
)