首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假定用两个一维数组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
33
问题
假定用两个一维数组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
学硕统考专业
相关试题推荐
继承并发展德谟克利特和伊壁鸠鲁的“原子论”,认为宇宙万物都是由原子构成的,并按照物质本身所特有的规律发展的罗马共和国时期的哲学家()。
葡萄牙、西班牙最早走上殖民征服道路,从政治上来说是由于()
共产国际“七大”决定加强各国共产党的自主性,主要是由于()。
“瓜步之战”发生在下列哪两个政权之间?()
解放军渡江战役中横渡长江的东西两个攻击点是()。
1908年安庆新军起义是由()领导的。
随机试题
根据审查主体和内容的不同而划分的审计类型包括()
对于行波学说,不正确的叙述是
A、龋齿B、牙龈炎C、牙周疾病D、牙列不齐E、前牙外伤幼儿口腔疾病主要是
患者,女,26岁,已婚。分娩时失血较多,产后小腹隐隐作痛,喜按,恶露量少、色淡,头晕耳鸣,大便干燥,舌淡苔薄,脉虚细。应首先考虑的是( )。
以下属于甲企业侵犯注册商标专用权的是:
已知甲、乙为两个寿命期相同的互斥项目,其中乙项目投资大于甲项目。通过测算得出甲、乙两项目的内部收益率分别为18%和14%,增量内部收益率△IRR(乙-甲)=13%,基准收益率为11%,以下说法中正确的是:
关于控制巷道顶板的安全工作,说法错误的是()。
建筑结构的变形缝包括()。
账套主管可以新建和删除账套。()
按照价值规律,商品的价格上升通常会使其销量减少,除非价格上升的同时伴随着质量的提高。化妆品却是一个例外。某化妆品牌的一款产品市场价30元时无人问津,厂家将零售价统一为128元后,销量却大增。下面哪一项最能解释上述反常现象?()
最新回复
(
0
)