社区讨论

为何输不完

题目总版参与者 3已保存回复 7

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@lo2tel3m
此快照首次捕获于
2023/10/23 19:29
2 年前
此快照最后确认于
2023/10/23 19:29
2 年前
查看原帖
CPP
#include<iostream>
#include<string>
using namespace std;
int n,t;

struct node
{
	char name;
	int l,r;
}tree[30];

void order(int now)
{
	cout<<tree[now].name;
	if(tree[now].l!=0) order(tree[now].l);
	if(tree[now].r!=0) order(tree[now].r);
}

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		char a[3];
		cin>>a[1]>>a[2]>>a[3];
		tree[t].name=a[1];//命名 
		int t1=a[1]-'a'+1,t2=a[2]-'a'+1,t3=a[3]-'a'+1;//转换为int类型下标 
		if(i==1) t=t1;//取出根节点 
		tree[t].l=t2;
		tree[t].r=t3;//左右子节点 
		if(a[2]=='*') tree[t].l=0;
		if(a[3]=='*') tree[t].r=0;//特判 
	}
	order(t);
	return 0;
} 

回复

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

正在加载回复...