#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<algorithm>
#include <set>
using namespace std;
struct node
{
string data;
int left;
int right;
node(string a, int b, int c)
{
data = a;
left = b;
right = c;
}
};
vector<node>vm;
int cnt = 0;
int dfs(int next,bool flag)
{
if (vm[next].right == -1&&flag==false)
{
cout <<"("<<vm[next].data;
return 0;
}
if (vm[next].right == -1 && flag ==true)
{
cout << vm[next].data<<")";
while (cnt!=0)
{
cnt--;
cout << ")";
}
cnt = 0;
return 0;
}
if (vm[next].left != -1)
dfs(vm[next].left - 1,false);
if (vm[next].left == -1 && vm[next].right != -1)
{
cout << "(";
cnt++;
}
cout << vm[next].data;
dfs(vm[next].right-1,true);
}
int main()
{
int M,b,c;
string a;
set<int>s;
cin>>M ;
for (int i = 0; i < M; i++)
{
cin >>a >> b >> c;
node nn(a, b, c);
vm.push_back(nn);
s.insert(b);
s.insert(c);
}
int start;
for (int i = 1; i <=M; i++)
{
if (s.find(i) == s.end())
{
start = i;
break;
}
}
dfs(start - 1,false);
system("pause");
return 0;
}
1130 Infix Expression(25 分)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- This time, you are supposed to find A+B where A and B are...
- 这几天,只要你摆渡“Java”、“反序列化漏洞”等关键词,有关【java反序列化漏洞——2015年被低估的“破坏之...