⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 erchahpd.cpp

📁 几个常用的数据结构算法:堆栈、链表、二叉树、图等。
💻 CPP
字号:
#include<stdlib.h>
#include<stdio.h>
#define N 8
int builttree(int R[],int L[]);
int test(int U,int V,int L[],int R[],int T[]);
int Generation (int U,int V,int L[],int R[],int T[]);
void main()
{
	int U=0,V=0,L[N+1],R[N+1],T[N+1];
	builttree(R,L);
	test(U,V,L,R,T);
	
}
int builttree(int R[],int L[])
{
	int i;
	printf("input L[i]:\n");
	for(i=0;i<=N;i++)
	{
		scanf("%d",&L[i]);
	}
    printf("input R[i]:\n");
	for(i=0;i<=N;i++)
	{
		scanf("%d",&R[i]);
	}
    return 1;
}
int test(int U,int V,int L[],int R[],int T[])
{
	printf("input U V :");
	scanf("%d%d",&U,&V);
    Generation ( U,V,L,R,T);
	return 0;
}
int Generation (int U,int V,int L[],int R[],int T[])
{
	int i;
	for(i=1;i<=N;i++) 
		T[i]=0;                  //T数组初始化
	for (i=1;i<=N;i++)           //根据L和R填写T
		if(L[i]!=0) 
			T[L[i]]=i;           //若结点i的左子女是L,则结点L的双亲是结点i
	for(i=1;i<=N;i++)
		if (R[i]!=0) 
			T[R[i]]=i;           //i的右子女是r,则r的双亲是i
	int parent=U;                //判断U是否是V的后代
	while (parent!=V && parent!=0)
		parent=T[parent];
	if (parent==V)
	{
		printf("结点U是结点V的后代\n");
		return(1);
	}
	else
	{ 
		printf("结点U不是结点V 的后代\n");
		return (0);
	}
}//结束Generation









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -