树上基本统计(模板题)

输入一棵树,1是根节点。求每个节点的父节点、深度、子树大小、子树高度

代码:

#include 
using namespace std;
const int N=100009;
vector to[N];
int d[N],p[N],sz[N],h[N],n;
void add(int u,int v){
	to[u].push_back(v);
	to[v].push_back(u);
}
void input(){
	cin>>n;
	for(int i=1;i<=n-1;i++){
		int u,v;
		cin>>u>>v;
		add(u,v);
	}
}
void dfs(int u,int fa){
	p[u]=fa;
	d[u]=d[fa]+1;
	sz[u]=1;
	h[u]=1;
	for(int i=0;i

你可能感兴趣的:(深度优先,算法,图论)