一颗二叉树中按顺序存储结构存储,求编号i和j两个结点的公共祖先

//寻找编号i和j两个结点的公共祖先
#include
typedef struct Tree{
	int data[12];
}t;
int comm(Tree t[],int i,int j)
{
	if(t->data[i]>=-1&&t->data[j]>=-1)
	{
		while(i!=j)
		{
			if(i>j)
			i=i/2;
			else
			j=j/2;
		}
			return t->data[i];
	}
	return -1;
}
int main()
{
	Tree t[12]={-1,1,2,3,-1,4,5,-1,6,-1,-1,7};
	int ret=comm(t,3,7);
	printf("%d",ret);
	return 0;
}

一颗二叉树中按顺序存储结构存储,求编号i和j两个结点的公共祖先_第1张图片

 

你可能感兴趣的:(c语言,算法,开发语言)