社区讨论

新人求助,新二叉树那题,本机AC提交RE。

P1305新二叉树参与者 4已保存回复 20

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
20 条
当前快照
1 份
快照标识符
@lod2m3pl
此快照首次捕获于
2023/10/30 23:44
2 年前
此快照最后确认于
2023/11/05 10:02
2 年前
查看原帖
非玩梗
RUN https://www.luogu.com.cn/record/40358312
以下是我的代码:
CPP
#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;
}
第一个数据点我下下来了,本机是对的,请大家帮帮忙!谢谢!

回复

20 条回复,欢迎继续交流。

正在加载回复...