为何输不完
查看原帖
为何输不完
713303
shining_array楼主2023/4/4 12:55
#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;
} 
2023/4/4 12:55
加载中...