《数据结构与算法》学到树那章,看到有表达树这样东西,于是实现了一下,但是目前暂时不支持括号
实现那里借用了之前将中缀表达式转换为后缀表达式的代码,输入中缀表达式,然后后缀表达式和中缀表达式(中缀转后缀再转中缀。。。)
#include <iostream>
#include <sstream>
#include <stack>
using namespace std;
struct Node
{
int num;//储存数字和运算符
bool oper;//是否为运算符
Node* left;//左节点
Node* right;//右节点
Node(char c)//针对运算符的构造函数
{
oper=true;
num=c;
left=right=NULL;
}
Node(int n)//针对数字的构造函数
{
oper=false;
num=n;
left=right=NULL;
}
};
//构建树
Node* CreateTree(string exp)
{
stack<Node*> s;
int num=0;
bool is_num=false;
Node* n1,*n2;
for(int i=0;i<exp.size();i++)
{
if(exp[i]==' ')
{
if(is_num)//把数字压入栈
{
Node* tmp=new Node(n