![]() ![]() |
|
数据结构:求最近的公共祖先结点的值 | |
作者:佚名 文章来源:不详 点击数 更新时间:2007/12/21 18:06:32 文章录入:杜斌 责任编辑:杜斌 | |
|
|
【解答】 #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(i } 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 交替追赶,直到相等。 |
|
![]() ![]() |