新人求助,新二叉树那题,本机AC提交RE。
查看原帖
新人求助,新二叉树那题,本机AC提交RE。
161364
Walker_V楼主2020/10/24 09:35

非玩梗

RUN https://www.luogu.com.cn/record/40358312

以下是我的代码:

#include<bits/stdc++.h>
#define N 30

int n,rt;
int ls[N],rs[N];
bool vis[N],son[N];

namespace WalkerV {
	void Read() {
		scanf("%d",&n);
		for(int i=1;i<=n;i++) {
			getchar();
			int o,l,r;
			char c,x,y;
			c=getchar(),x=getchar(),y=getchar();
			o=c-'a'+1;
			//printf("%d",o);
			vis[o]=true;
			if(x!='*') {
				l=x-'a'+1;
				//printf("%d",l);
				ls[o]=l;
				son[l]=true;
			}
			if(y!='*') {
				r=y-'a'+1;
				//printf("%d",r);
				rs[o]=r;
				son[r]=true;
			}
			//printf("\n");
		}
		return;
	}

	void DFS(int o) {
		printf("%c",o+'a'-1);
		if(ls[o]) {
			DFS(ls[o]);
		}
		if(rs[o]) {
			DFS(rs[o]);
		}
		return;
	}

	void Solve() {
		for(int i=1;i<=26;i++) {
			if(vis[i]&&!son[i]) {
				rt=i;
				break;
			}
		}
		//printf("rt:%d\n",rt);
		DFS(rt);
		return;
	}
}

int main()
{
	WalkerV::Read();
	WalkerV::Solve();
	return 0;
}

第一个数据点我下下来了,本机是对的,请大家帮帮忙!谢谢!

2020/10/24 09:35
加载中...