当前位置:网站首页>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 .
边栏推荐
- 8. Commodity management - commodity classification
- openresty ngx_lua執行階段
- Voice chip wt2003h4 B008 single chip to realize the quick design of intelligent doorbell scheme
- 【LeetCode】98. Verify the binary search tree (2 brushes of wrong questions)
- El select, El option drop-down selection box
- 2. Common request methods
- 看 TDengine 社区英雄线上发布会,听 TD Hero 聊开发者传奇故事
- Qrcode: generate QR code from text
- spoon插入更新oracle数据库,插了一部分提示报错Assertion botch: negative time
- The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
猜你喜欢

Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool

Character painting, I use characters to draw a Bing Dwen Dwen

Exploration of short text analysis in the field of medical and health (II)

Open source SPL optimized report application coping endlessly

Sqoop命令

Spoon inserts and updates the Oracle database, and some prompts are inserted with errors. Assertion botch: negative time

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

El select, El option drop-down selection box

单项框 复选框

1. Five layer network model
随机推荐
ASP. Net core 6 framework unveiling example demonstration [01]: initial programming experience
Design of KTV intelligent dimming system based on MCU
this+闭包+作用域 面试题
Kotlin - 协程 Coroutine
Design and implementation of community hospital information system
Tiny series rendering tutorial
Scientific research: are women better than men?
Devtools的簡單使用
PHP cli getting input from user and then dumping into variable possible?
el-select,el-option下拉选择框
[micro service SCG] 33 usages of filters
问题解决:AttributeError: ‘NoneType‘ object has no attribute ‘append‘
【LeetCode】404. Sum of left leaves (2 brushes of wrong questions)
Talk about the things that must be paid attention to when interviewing programmers
Port, domain name, protocol.
有个疑问 flink sql cdc 的话可以设置并行度么, 并行度大于1会有顺序问题吧?
Application and Optimization Practice of redis in vivo push platform
1.五层网络模型
GFS distributed file system
Comparison of advantages and disadvantages between platform entry and independent deployment