秋招每日一题T7——后缀表达式

根据给定的二叉表达式树,通过后序遍历生成后缀表达式。题目描述了输入格式,数据范围,并提供了解题思路,包括如何处理负号节点。输出为不含空格的后缀表达式。
摘要由CSDN通过智能技术生成

题目描述

给定一个二叉表达式树,请你输出相应的后缀表达式,要求使用括号反映运算符的优先级。

输入格式
第一行包含整数 N,表示节点数量。节点编号 1∼N。

接下来 N 行,每行给出一个节点的信息(第 i 行对应第 i 个节点),格式为:

data left_child right_child
其中,data 是一个不超过 10 个字符的字符串,left_child 和 right_child 分别是该节点的左右子节点的编号。

没有子节点(即 NULL),则用 −1 表示。

下面两图分别对应给出的两个样例。
在这里插入图片描述
输出格式
在一行中输出答案,表达式符号之间不得有空格。

数据范围
1≤N≤20

在这里插入图片描述

思路

①首先搞清楚二叉树的后缀表达式即二叉树的后序遍历,即从中间结点先遍历左儿子,再遍历右儿子,最后遍历中间结点。以这个思路进行dfs即可解题。
②由于该题给定的是二叉树表达式,因此对于含有-(负号)的结点,没有左儿子,此时需要先输出负号再遍历右儿子,因此遇到负号需要特判。

代码

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值