首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
admin
2013-07-12
59
问题
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
选项
答案
int.found=FALSEI Bitree*Find_Near_Ancient(Bitree T,Bitree P,Bitree q){ //求二叉树T中结点P和q的最近共同祖先 Bitree pathp[100],pathq[i00]; //设立两个辅助数组暂存从根到P,q的路径 Findpath(T,P,pathp,0); found=FALSE; Findpath(T,q,pathq,0); //求从根到p,q的路径放在pathp和pathq中 for(i=0;pathp[i]==pathq[i]&&pathp[i];i++);, //查找两条路径上最后一个相同结点 return pathp[--i]; } void Findpath(Bitree T,Bitree P,Bitree path[],int i){ //求从T到P路径的递归算法 if(T==p) { found=TRUE; //找到 return; } path[i]=T; //当前结点存入路径 if(T->ichild) Findpath(T->ichild,P,path,i+1); //在左子树中继续寻找 if(T->rchild&&!found) Findpath(T->rchild,P,path,i+1); //在右子树中继续寻找 if(!found) path[i]=NULL; //回溯
解析
本题也可叙述为求,*p和*q两个结点的最小子树。
遍历访问到*p时,将*p结点的祖先保存到数组pathp中,再遍历访问到*q时,将*q结点的祖先保存到数组pathq中,将数组pathp与数组pathq的结点依次(从0开始)比较,找到最近的共同祖先。
转载请注明原文地址:https://www.kaotiyun.com/show/Juxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1876年7月第一国际举行最后一次代表大会宣告解散,这次代表大会的地点是()。
马克思指出:“鸦片不曾产生催眠的作用,而倒产生了惊醒作用,历史的发展好像首先要麻醉这个国家的人民,然后才可能把他们从历来的麻木状态唤醒似的。”这里所说的“唤醒”的意思是()。
二战以来,资本主义经济在发展中出现了许多新问题,主要原因是()。
独立战争前,北美殖民地的类型主要包括()。①王室殖民地②业主殖民地③自治殖民地④“居留地"
试析淝水之战前后南北政权的特点和变化。
简述英法百年战争爆发的原因、过程和影响。
从1939年春天起,国共双方军队在驻防结合部的摩擦冲突不断升级,不是这一时期惨案的是()
西藏自治区的设立时间是()。
1628年出版了《心血运动论》一书,论证了血液在全身的循环运动,使生理学发展为科学的是()。
明朝灭亡后,以下南明小朝廷存在的先后顺序是()。①绍武政权②永历政权③隆武政权④弘光政权
随机试题
对酵母型菌落的描述错误的是
用于治疗心痛,心悸,呕血,咳血、疔疮的腧穴是
食用某一种毒蕈后,会引起体内大部分器官发生细胞变性,其毒素属细胞原浆毒,中毒后病情凶险,死亡率高,这种毒蕈为
导航电子地图的标准包括数据采集标准和数据制作标准。数据制作标准的特点不包括()。
紧急切断阀要求动作灵活,应能在()秒钟内准确闭合,主要用于储罐和槽车。
群体决策的过程大致分为三个阶段,其中包括()。
物业服务企业接受水、电、气、热等公用事业单位委托,向业主代收相关费用()。
在民族地区和边远贫困地区工作的教师享有()津贴。
设intx:,则经过______后,语句*px=0;可将x值置为0。
Thepracticeofcapitalpunishmentisasoldasgovernmentitself.Formostofhistory,ithasnotbeenconsideredcontroversial
最新回复
(
0
)