int isGrandChild(int u, int v) //判断u是否为v的子孙
{
if (L[v] == u || R[v] == u) return 1; //1表示是,0表示否
if (L[v] == 0 && R[v] == 0) return 0;
return isGrandChild(u, L[v]) || isGrandChild(u, R[v]); //如果u是L[v]或者R[v]的子孙,那么u也是v的子孙
}
#include
int Judge(int L[], int R[], int u, int v)
{
if (L[v]!=0 || R[v]!=0)
{
if (L[v]==u || R[v]==u)
return 1;
else
{
int a,b;
a=Judge( L, R, u, L[v]);
b=Judge( L, R, u, R[v]);
if (a==1 || b==1)
return 1;
}
}
else
return 0;
}
int main () {
int L[16]={0,2,4,6,8,10,12,14,0,0,0,0,0,0,0,0};
int R[16]={0,3,5,7,9,11,13,15,0,0,0,0,0,0,0,0};
int a = Judge(L,R,11,5);
printf("%d", a);
}