1 条题解

  • 0
    @ 2024-12-24 9:49:24

    C++ :

    #include<cstdio>
    int l[1000],r[1000],f[1000];
    int dfs(int n)
    {
    	if(n==f[n])
    		return n;
    	return dfs(f[n]);
    }
    void xianxu(int k)
    {
    	printf("%d ",k);
    	if(l[k])
    		xianxu(l[k]);
    	if(r[k])
    		xianxu(r[k]);
    }
    void zhongxu(int k)
    {
    	if(l[k])
    		zhongxu(l[k]);
    	printf("%d ",k);
    	if(r[k])
    		zhongxu(r[k]);
    }
    void houxu(int k)
    {
    	if(l[k])
    		houxu(l[k]);
    	if(r[k])
    		houxu(r[k]);
    	printf("%d ",k);
    }
    int main()
    {
    	int i,n,a,b,c;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    		f[i]=i;
    	for(i=1;i<=n;i++)
    	{
    		scanf("%d%d%d",&a,&b,&c);
    		l[a]=b,r[a]=c;
    		f[b]=f[c]=a;
    	}
    	int root=dfs(n);
    	printf("%d\n",root);
    	xianxu(root);
    	printf("\n");
    	zhongxu(root);
    	printf("\n");
    	houxu(root);
    	printf("\n");
    	return 0;
    }
    
    • 1

    信息

    ID
    864
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者