早教吧作业答案频道 -->其他-->
假定用两个一维数组L[n+1]和R[n+1]作为有n个结点的二叉树的存储结构,L[i]和R[i]分别指示节点i(i=1,2,.,n)的左孩子和右孩子,0表示空.试写一个算法判断结点u是否为结点v的子孙.
题目详情
假定用两个一维数组L[n+1]和R[n+1]作为有n个结点的二叉树的存储结构,
L[i]和R[i]分别指示节点i(i=1,2,.,n)的左孩子和右孩子,0表示空.试写一个算法判断结点u是否为结点v的子孙.
L[i]和R[i]分别指示节点i(i=1,2,.,n)的左孩子和右孩子,0表示空.试写一个算法判断结点u是否为结点v的子孙.
▼优质解答
答案和解析
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的子孙
}
{
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的子孙
}
看了 假定用两个一维数组L[n+1...的网友还看了以下:
维尼熊和跳跳虎去摘苹果.维尼熊爬上树去摘,跳跳虎在地上跳着摘.跳跳虎每摘7个维尼熊只能摘4个.维尼 2020-04-07 …
在一条笔直的公路上,有一些树和灯,每相邻的两盏灯之间有3棵树,相邻树与树、树与灯之间的距离是10m 2020-06-18 …
树被沿着树身砍了一圈,怎么才能就活它?家门前的荔枝树和菠萝蜜(大树菠萝)树被人沿着树身砍了一圈,树 2020-06-19 …
小学数学题维尼熊和跳跳虎去摘苹果,维尼熊爬上树去摘,跳跳虎在地上跳着摘.跳跳虎每摘7个,维尼熊只能 2020-06-26 …
伊罗奎伊斯宪章(节选)(伊罗奎伊斯族:亚瑟·C.·帕克译)我是德卡纳维达,我和五族①同盟的首领们一 2020-06-27 …
如图表示“测定植物的蒸腾作用”的实验.(1)实验前,左右两装置的不同点是左树枝上有树叶,右树枝上无 2020-07-24 …
画影子如果满意赏20这方面的常识不多对你们来说应该不难太阳在中间,太阳左后方是一棵树,右后方是一堵墙 2020-11-07 …
有专家指出,当前思维定式和利益固化的藩篱严重制约了收入分配的公平。突破思维定式和利益固化的藩篱需要( 2020-12-05 …
下列关于二叉树遍历的说法正确的有(多选)1只有空二叉树和一个根结点的二叉树这两种二叉树的中序和后序遍 2020-12-05 …
在一条笔直的公路边,有一些树和路灯,每相邻的两盏灯之间有3棵树,相邻的树与树,树与灯间的距离是10c 2020-12-27 …