给定表达式为:a*b+(c-d)/e 建立表达式二叉树

该博客介绍了如何通过中缀表达式转换为后缀表达式,进而构建表达式二叉树。具体步骤包括调用中缀后缀转换程序,将给定的表达式如'a*b+(c-d)/e'转换为后缀表达式,然后边读取后缀表达式边建立二叉树。博客提供了相关源代码,包括tnode.h、vstack.h和tree.cpp,用于实现这一过程并逆时针90度打印二叉树。
摘要由CSDN通过智能技术生成

建立表达式二叉树。

给定表达式为:a*b+(c-d)/e

要求:首先调用中缀后缀转换程序,实现中缀表达式到后缀表达式的转换;然后针对后缀表达式边读表达式边建立二叉树。

   可正向打印二叉树,若有困难,可逆时针转动90度再打印。

=============================================

源代码

--------------------------------------------------

tnode.h

-------------------------------------------------

#include<iostream>

using namespace std;

 

#include <stack>

#include <iomanip>

 

template <typename T>

class tnode

{

   public:

T nodeValue;

tnode<T> *left, *right;

tnode(){}

tnode (const T& item, tnode<T> *lptr = NULL, tnode<T> *rptr = NULL):nodeValue(item), left(lptr), right(rptr){}

tnode<T>* buildTree(string exp);

int depth(tnode<T> *root);

void print(tnode<T> *node_ptr, int depth);

};

 

template <typename T>

tnode<T> *tnode<T>::buildTree(string exp)

{

int i=0;

stack<tnode<T>*> tex;

tnode<T> *a;

T b=exp[i++];

while(b!='\0')

{

if(b!='*' && b!='/' && b!='+' && b!='-' && b!='%'){

a=new tnode<T>(b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值