#include<cstdio>
#include<iostream>
#include<string>
using namespace std
;
struct node
{
string s
;
int left
, right
;
}m
[30];
bool vis
[30];
string
postT(int root
)
{
if(m
[root
].left
== -1 && m
[root
].right
== -1)
return "(" + m
[root
].s
+ ")";
else if(m
[root
].left
== -1 && m
[root
].right
!= -1)
return "(" + m
[root
].s
+ postT(m
[root
].right
) + ")";
else if(m
[root
].left
!= -1 && m
[root
].right
!= -1)
return "(" + postT(m
[root
].left
) + postT(m
[root
].right
) + m
[root
].s
+ ")";
}
int main()
{
int n
;
scanf("%d", &n
);
for(int i
= 1; i
<= n
; i
++)
{
string data
;
cin
>> m
[i
].s
;
scanf("%d%d", &m
[i
].left
, &m
[i
].right
);
if(m
[i
].left
!= -1)
vis
[m
[i
].left
] = true;
if(m
[i
].right
!= -1)
vis
[m
[i
].right
] = true;
}
int root
= 1;
while(vis
[root
] == true && root
<= n
)
root
++;
string res
= postT(root
);
cout
<< res
<< endl
;
}
转载请注明原文地址:https://tech.qufami.com/read-17206.html