当前位置:网站首页>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 .
边栏推荐
- ELK日志分析系统
- Single box check box
- Simple use of devtools
- 看 TDengine 社区英雄线上发布会,听 TD Hero 聊开发者传奇故事
- 【LeetCode】404. Sum of left leaves (2 brushes of wrong questions)
- Watch the online press conference of tdengine community heroes and listen to TD hero talk about the legend of developers
- Cut! 39 year old Ali P9, saved 150million
- Design and practice of kubernetes cluster and application monitoring scheme
- Bert fine tuning skills experiment
- 2. Common request methods
猜你喜欢

Bumblebee: build, deliver, and run ebpf programs smoothly like silk

Zabbix

Marubeni Baidu applet detailed configuration tutorial, approved.

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

Openresty ngx Lua Execution stage
![ASP. Net core 6 framework unveiling example demonstration [01]: initial programming experience](/img/3b/0ae9fbadec5dbdfc6981f1f55546a5.jpg)
ASP. Net core 6 framework unveiling example demonstration [01]: initial programming experience

Vb+access hotel service management system

Yyds dry goods inventory intelligent fan based on CC2530 design

Design of KTV intelligent dimming system based on MCU

Yolov5 model training and detection
随机推荐
Tiny series rendering tutorial
Character painting, I use characters to draw a Bing Dwen Dwen
Devtools的簡單使用
【LeetCode】98. Verify the binary search tree (2 brushes of wrong questions)
【LeetCode】111. Minimum depth of binary tree (2 brushes of wrong questions)
Use the difference between "Chmod a + X" and "Chmod 755" [closed] - difference between using "Chmod a + X" and "Chmod 755" [closed]
Introduce reflow & repaint, and how to optimize it?
Hmi-32- [motion mode] add light panel and basic information column
2021 Li Hongyi machine learning (3): what if neural network training fails
Start the remedial work. Print the contents of the array using the pointer
openresty ngx_ Lua execution phase
使用druid連接MySQL數據庫報類型錯誤
Naacl 2021 | contrastive learning sweeping text clustering task
Design and practice of kubernetes cluster and application monitoring scheme
丸子百度小程序详细配置教程,审核通过。
How to find hot projects in 2022? Dena community project progress follow-up, there is always a dish for you (1)
[daily problem insight] Li Kou - the 280th weekly match (I really didn't know it could be so simple to solve other people's problems)
TCP security of network security foundation
d3js小记
Master Fur