当前位置:网站首页>Pat class a 1162 postfix expression
Pat class a 1162 postfix expression
2022-07-05 02:46:00 【Handsome BIA】
1162 Postfix Expression (25 branch )
Given a syntax tree (binary), you are supposed to output the corresponding postfix expression, with parentheses reflecting the precedences of the operators.


Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 20) which is the total number of nodes in the syntax tree. Then N lines follow, each gives the information of a node (the i-th line corresponds to the i-th node) in the format:
data left_child right_child
where data is a string of no more than 10 characters, left_child and right_child are the indices of this node’s left and right children, respectively. The nodes are indexed from 1 to N. The NULL link is represented by −1. The figures 1 and 2 correspond to the samples 1 and 2, respectively.
Output Specification:
For each case, print in a line the postfix expression, with parentheses reflecting the precedences of the operators.There must be no space between any symbols.
Sample Input 1:
8
* 8 7
a -1 -1
* 4 1
+ 2 5
b -1 -1
d -1 -1
- -1 6
c -1 -1
Sample Output 1:
(((a)(b)+)((c)(-(d))*)*)
Sample Input 2:
8
2.35 -1 -1
* 6 1
- -1 4
% 7 8
+ 2 3
a -1 -1
str -1 -1
871 -1 -1
Sample Output 2:
(((a)(2.35)*)(-((str)(871)%))+)
Thought analysis : This topic and 1130 similar , Are given an expression tree to find his expression , This topic requires finding the suffix expression , Then the idea is very clear , We just need to build a tree , Then it is OK to print after traversal , But pay attention to , If there is a node without a left child , Then we have to print the root node first , Here we use a st Array tags are ok . One last word , Input methods like this , We use two-dimensional arrays tree[N][2] Building trees can be more convenient , The second is to store the location of the two children , Use another w[N] Stored value
#include<bits/stdc++.h>
using namespace std;
const int N = 25;
int tree[N][2];
string w[N],value;
bool st[N];
int n,l,r,root;
void print(int t)
{
if(!st[t]) cout<<w[t];
st[t] = 1;
}
void dfs(int t)
{
if (t == -1) return ;
printf("(");
if(tree[t][0] == -1) print(t);
dfs(tree[t][0]);
dfs(tree[t][1]);
print(t);
printf(")");
}
int main()
{
cin >> n;
for (int i = 1 ;i <= n ; i ++ )
{
cin >> value >> l >> r;
tree[i][0] = l,tree[i][1] = r;
st[l] = 1,st[r] = 1;
w[i] = value;
}
for (int i = 1; i <= n; i ++ ) if(!st[i]) root = i;
memset(st,0,sizeof st);
dfs(root);
return 0;
}
There is probably so much content , I hope I can help you .
边栏推荐
- Naacl 2021 | contrastive learning sweeping text clustering task
- openresty ngx_lua执行阶段
- 腾讯云,实现图片上传
- Elk log analysis system
- College Students' innovation project management system
- Privatization lightweight continuous integration deployment scheme -- 01 environment configuration (Part 1)
- Moco V2 literature research [self supervised learning]
- When to catch an exception and when to throw an exception- When to catch the Exception vs When to throw the Exceptions?
- Apache build web host
- Eight days of learning C language - while loop (embedded) (single chip microcomputer)
猜你喜欢

Idea inheritance relationship

openresty ngx_ Lua execution phase

this+闭包+作用域 面试题

Avoid material "minefields"! Play with super high conversion rate

The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety

Can you really learn 3DMAX modeling by self-study?

Linux安装Redis

el-select,el-option下拉选择框

Apache Web page security optimization

Tencent cloud, realize image upload
随机推荐
Which common ports should the server open
【LeetCode】106. Construct binary tree from middle order and post order traversal sequence (wrong question 2)
qrcode:将文本生成二维码
Bumblebee: build, deliver, and run ebpf programs smoothly like silk
Six stone programming: advantages of automated testing
100 basic multiple choice questions of C language (with answers) 04
Yolov5 model training and detection
openresty ngx_lua執行階段
Use the difference between "Chmod a + X" and "Chmod 755" [closed] - difference between using "Chmod a + X" and "Chmod 755" [closed]
Blue bridge - maximum common divisor and minimum common multiple
[Yu Yue education] National Open University autumn 2018 8109-22t (1) monetary and banking reference questions
Single line function*
数据库和充值都没有了
Use UDP to send a JPEG image, and UPD will convert it into the mat format of OpenCV after receiving it
PHP cli getting input from user and then dumping into variable possible?
端口,域名,协议。
Hmi-32- [motion mode] add light panel and basic information column
Pytest (4) - test case execution sequence
Marubeni Baidu applet detailed configuration tutorial, approved.
openresty ngx_ Lua variable operation