RE求助!
查看原帖
RE求助!
161364
Walker_V楼主2020/10/23 20:03

我也不知道为什么会卡在这种橙题上(哭

根节点我也判了,提交RE后也把数组开到100了,为什么还是RE啊?

代码如下:

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

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/23 20:03
加载中...