首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
admin
2012-06-26
75
问题
已知在二叉树中,T为根结点,*p和*q为二叉树中两个结点,试编写求距离它们最近的共同祖先的算法。
选项
答案
int.found=FALSE; Bitree*Find_Near_Ancient(Bitree T,Bitree p,Bitree q){ //求二叉树T中结点P和q的最近共同祖先 Bitree pathp[100],pathq[100]; //设立两个辅助数组暂存从根到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->lchild) Findpath(T->lchild,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/8yxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
斯大林时期的经济体制最本质的特点是()。
在半殖民地半封建社会条件下,由于经济地位决定了在政治上带有两重性的阶级是()。
导致“八一九”事件的直接原因是()。
以下关于玛雅文明叙述,不正确的是()。
有人说:“我们应当以资本供给全世界,而谁以资本供给全世界,谁就应当管理全世界。”讲这话的应该是()。
德国法西斯能够通过合法方式夺取政权,主要原因有()。①垄断资产阶级要求建立极权统治②纳粹党利用了人民对现状的不满③骗人的宣传欺骗了社会的信任④通过国会纵火案打击了共产党
简述古巴导弹危机的过程。
我国古代文献中记载了许多有关部落和部落联盟之间发生大规模战争的传说,如炎帝和黄帝两个部落曾战于(),结果黄帝取得了胜利。
高度为4的4阶B树最多可容纳()个关键字(根是第1层)。
已知一个线性表(38,25,74,63,52,48),表长为16,假定采用散列函数h(key)=key%7,计算散列地址,并存储在散列表中,若采用线性探测方法解决冲突,在该散列表上,进行等概率成功查找的平均查找长度为()。
随机试题
测定水中微量氟,最为合适的方法是
凝集反应和沉淀反应的本质区别在于
根据《工伤保险条例》,建筑施工企业职工有下列情况可以认定为工伤的有()。
某公司在进行客户服务的过程中,努力做好所有新客户的首次和定期电话回访工作,改善客户体验,提升满意度,这属于基金客户服务的什么流程?()
根据我国《公司法》的规定:国有独资公司的下列事项中,必须由国家授权投资的机构或者国家授权投资的部门决定的有()。
根据《导游人员实施办法》规定,导游人员私自带人随团游览的应扣()。
教师开始关注学生的个别差异和不同需要,并考虑教学方法是否适合学生等问题。这表明该教师处于专业成长的()。
某网络集成公司对某种网络设备的年需要量为5000件,单价为2000元,年储存成本为单价的15%,每次订货的订购成本为300元,平均交货时间为10天。一年按365天计算,则该网络设备的全年库存总成本为(70)。
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。
A、Hethreatenedthepolice.B、Hetooksomehostages.C、Herobbedabank.D、Helockedhimselfinahouse.D
最新回复
(
0
)