算术表达式的转换——算术表达树

本文探讨了如何通过算术表达树来转换算术表达式,详细介绍了如何通过后缀表达式构建树,并通过前序、中序、后序遍历得到前缀、中缀和后缀表达式。针对SDUT的一道题目,文章提供了算术表达式转换的方法,包括从输入表达式到前缀、中缀和后缀形式的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Think:
1知识感悟:算术表达式的转换可以思考通过后缀表达式建树,然后分别进行前序遍历,中序遍历,后序遍历即可得到前缀表达式,中缀表达式,后缀表达式

SDUT题目链接
建议参考博客

算术表达式的转换
Time Limit: 1000MS Memory Limit: 65536KB

Problem Description
小明在学习了数据结构之后,突然想起了以前没有解决的算术表达式转化成后缀式的问题,今天他想解决一下。
因为有了数据结构的基础小明很快就解出了这个问题,但是他突然想到怎么求出算术表达式的前缀式和中缀式呢?小明很困惑。聪明的你帮他解决吧。

Input
输入一算术表达式,以\’#\’字符作为结束标志。(数据保证无空格,只有一组输入)

Output
输出该表达式转换所得到的前缀式 中缀式 后缀式。分三行输出,顺序是前缀式 中缀式 后缀式。

Example Input
a*b+(c-d/e)*f#

Example Output
+ab-c/def
a*b+c-d/e*f
ab*cde/-f*+

Hint

Author

以下为Accepted代码

#include <bits/stdc++.h>

using namespace std;

struct node {
    char s;
    struct node *l;
    struct node *r;
};

char sa[104], sb[104], sc[104];

int p;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值