您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 三级辅导 >> 正文    
  数据结构:求最近的公共祖先结点的值 【注册男护士专用博客】          

数据结构:求最近的公共祖先结点的值

www.nanhushi.com     佚名   不详 

【题目】已知一棵二叉树按顺序方式存储在数组 a[1..n]中。设计算法求出下标分别为 i 和 j 的两个结点的最近的公共祖先结点的值。

【解答】
#inlcude
parent(int a[],int i,int j)
{int k,m;
m=k=0;
if(i==1||j==1||a[i]==0||a[j]==0||i==j) // a[i]==0或a[j]==0表示不存在该结点
{printf('error./n');return;}
while(i!=1&&j!=1){
if(ielse if(jelse if(j==i){i=j;break;} // i=j 表示找到共同祖先
}
if(j==1||i==1)i=1; // i 或 j 有一个到了根结点
else if(m==0||k==0)i=i/2; // m、k 中有一个为 0 ,说明在查找过程中 i 或 j 有一个没移动
printf('the nearest common parent is a[%d]./n',i);
}


【分析】本题思路是使 i 和 j 交替追赶,直到相等。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    2011年护士资格考试:考…
    2009年初级护士资格考试…
    2009年主管护师考试于12…
    2009年初级护士考试于12…
    2009年初级护师考试于12…
    石家庄市关于2009年度护…
    2009年护士专业技术资格…
    医护技能考试周末举行 4…
    护士“托福”今年7月开考
    护士“托福”考试开始报…
    专 题 栏 目