欢迎登录北京林业大学OJ系统
http://www.bjfuacm.com
272基于二叉树的表达式求值
描述
输入一个表达式(表达式中的数均为小于10的正整数),利用二叉树来表示该表达式,创建表达式树,然后利用二叉树的遍历操作求表达式的值。
输入
多组数据。每组数据一行,为一个表达式,表达式以‘=’结尾。当输入只有一个“=”时,输入结束。
输出
每组数据输出一行,为表达式的值。
输入样例
2*(2+5)=
1+2=
输出样例
14
3
此题代码复制于基于二叉树的表达式求值算法
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
char s[N];
bool judge(char c)
{
//判断是不是数字
return c>='0'&&c<='9';
}
struct node
{
char c;
int num;
node* left;
node* right;
};
typedef node* tree;
tree build(int l,int r)
{
//建树
tree p=new node;
p->c='#';
p->left=NULL;
p->right=NULL;
int a=0;
int i;
bool flag=false;
while(l<r&&s[l