资源简介

一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现
基于二叉树表示的算术表达式Expression的操作。
假设算术表达式Expression内可以含有变量(a-z),常量(0-9)和二元运算符(+,-,*,/,^(乘幂))。实现以下操作:
(1)ReadExpr(E)――以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
(2)WriteExpr(E)――用带括号的中缀表达式输出表达式E。
(3)Assign(V,c)――实现对变量V的赋值(V=c),变量的初值为0。
(4)Value(E)――对算术表达式E求值。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
const int N = 9999999;
using namespace std;
//bool assign_flag = 1;
enum Data_type { INT CHAR };
struct Data
{
Data_type datatag;
union
{
int num;
char c;
};
};
struct binarynode
{
Data element;
binarynode* lchild * rchild;
binarynode()
{
lchild = rchild = nullptr;
}
binarynode(const Data& e)
{
element = e;
lchild = rchild = nullptr;
}
binarynode(const Data& e binarynode* l binarynode* r)
{
element = e;
lchild = l;
rchild = r;
}
};
class binarytree//为了递归调用is_all_assignedinborderpreorder都需要传入参数
{
private:
bool

评论

共有 条评论