Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-阅读程序 第 18 题
#include<bits/stdc++.h>
const int N=2e6+50;
int n, head[N], nxt[N], ver[N], dep[N],prv[N],suc[N],cnt;
inline void add(int u, int v)
{
	nxt[++cnt] =head[u], ver[cnt]=v, head[u]=cnt;
}
void dfs (int u, int fa)
{
	dep[u]=dep[fa]+1;
	for(int i=head[u]; i; i=nxt[i])
		if (ver[i] !=fa) dfs(ver[i],u);
}
void solve(int u,int fa,bool rv=false)
{
	int isLeaf=true,t=u;
	for (int i=head[u]; i; i=nxt[i])
	{
		int y=ver[i];
		if (y !=fa)
		{
			isLeaf= false;
			solve(y,u,rv ^ 1);
			if (rv)
			{
				int mp=prv[y];
				suc[t]=y,prv[y]=t,t=mp;
			}
			else
			{
				suc[t]=suc[y];
				prv[suc[y]]=t;
				suc[t=y]=0;
			}
		}
	}
	if (isLeaf) suc[u] =prv[u]=u;
	else suc[t]=u,prv[u]=t;
}
int main()
{
	scanf ("%d", &n) ;
	for (int i=1,u,v; i<n; ++i)
	{
		scanf ("%d%d",&u,&v);
		add(u,v) ;	add(v,u) ;
	}
	dfs (1,1) ;	solve(1,-1);
	printf("1 ");
	int p=1,v=suc[p];
	while (v !=p)
	{
		printf ("%d ",v) ;
		v=suc[v];
	}		
	return 0;
}
提示:该程序的输入为一张n个点的连通图。
● 判断题
第 1 题 (1分)由程序的建图方式,可以猜测输入的图G为一棵树。( )

解答部分以后会开放。