#include <iostream>
struct node{
int lchild,rchild;
char data[15];
}no[50];
int notroot[50]={0},N,root;
void inorder(int r){
if(r==-1) return;
if(r!=root&&(no[r].lchild!=-1||no[r].rchild!=-1)) printf("(");
inorder(no[r].lchild);
printf("%s",no[r].data);
inorder(no[r].rchild);
if(r!=root&&(no[r].lchild!=-1||no[r].rchild!=-1)) printf(")");
}
int main(){
scanf("%d",&N);
for(int i=1;i<=N;i++){
scanf("%s%d%d",no[i].data,&no[i].lchild,&no[i].rchild);
if(no[i].lchild!=-1) notroot[no[i].lchild]=true;
if(no[i].rchild!=-1) notroot[no[i].rchild]=true;
}
for(root=1;root<=N;root++)
if(notroot[root]==false) break;
inorder(root);
return 0;
}
PAT A1130
最新推荐文章于 2020-09-14 23:57:40 发布