当前位置:网站首页>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 .
边栏推荐
- 【LeetCode】98. Verify the binary search tree (2 brushes of wrong questions)
- Exploration of short text analysis in the field of medical and health (I)
- 看 TDengine 社区英雄线上发布会,听 TD Hero 聊开发者传奇故事
- Good documentation
- Yolov5 model training and detection
- 腾讯云,实现图片上传
- Spark SQL learning bullet 2
- Yuan universe also "real estate"? Multiple second-hand trading websites block metauniverse keywords
- 有个疑问 flink sql cdc 的话可以设置并行度么, 并行度大于1会有顺序问题吧?
- Exploration of short text analysis in the field of medical and health (II)
猜你喜欢

spoon插入更新oracle数据库,插了一部分提示报错Assertion botch: negative time

"C zero foundation introduction hundred knowledge and hundred cases" (72) multi wave entrustment -- Mom shouted for dinner

【LeetCode】222. The number of nodes of a complete binary tree (2 mistakes)

看 TDengine 社区英雄线上发布会,听 TD Hero 聊开发者传奇故事

Privatization lightweight continuous integration deployment scheme -- 01 environment configuration (Part 1)

【LeetCode】110. Balanced binary tree (2 brushes of wrong questions)

Design and implementation of kindergarten management system

Day_ 17 IO stream file class

2.常见的请求方法

The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
随机推荐
The database and recharge are gone
Tencent cloud, realize image upload
【LeetCode】110. Balanced binary tree (2 brushes of wrong questions)
Port, domain name, protocol.
Serious bugs with lifted/nullable conversions from int, allowing conversion from decimal
Can you really learn 3DMAX modeling by self-study?
From task Run get return value - getting return value from task Run
Apache Web page security optimization
Kotlin - coroutine
Character painting, I use characters to draw a Bing Dwen Dwen
Pytest (4) - test case execution sequence
Problem solving: attributeerror: 'nonetype' object has no attribute 'append‘
Design and implementation of campus epidemic prevention and control system based on SSM
[uc/os-iii] chapter 1.2.3.4 understanding RTOS
The most powerful new household god card of Bank of communications. Apply to earn 2100 yuan. Hurry up if you haven't applied!
Breaking the information cocoon - my method of actively obtaining information - 3
Design of kindergarten real-time monitoring and control system
ASP. Net core 6 framework unveiling example demonstration [01]: initial programming experience
College Students' innovation project management system
Good documentation