构建表达式树
来源:互联网 发布:董洁 王大治 知乎 编辑:程序博客网 时间:2024/05/17 01:10
方法输入后缀表达式,如果输入的是中缀表达式,则利用栈,转换成后缀表达式,然后检测每一个输入字符,如果操作数,则把该数的地址压入栈中,如果是操作符,则把栈的栈顶元素和栈顶元素的下一个元素出栈,分别为操作符的左子树和右子树,然后把该操作符的地址压入栈中,最后中序递归输出
<span style="font-size:14px;">#include <iostream>#include <string.h>#include <stack>using namespace std;typedef struct bitnode{ char data; struct bitnode* lchild; struct bitnode* rchild;}bitnode,*bitree;bitree createnode(char ch){ bitree bt; bt=(bitree)malloc(sizeof(bitnode)); bt->data=ch; bt->lchild=NULL; bt->rchild=NULL; return bt;}void create(bitree &bt){ stack<bitree> st; char ch; while((ch=getchar())!='\n') { bt=createnode(ch); if(ch=='+' || ch=='-' || ch=='*' || ch=='/') { bitree right=st.top(); st.pop(); bitree left=st.top(); st.pop(); bt->lchild=left; bt->rchild=right; st.push(bt); } else { st.push(bt); } }}void ontraverse(bitree bt){ if(bt!=NULL) { ontraverse(bt->lchild); cout<<bt->data; ontraverse(bt->rchild); }}int main(){ bitree bt; create(bt); ontraverse(bt);}</span>
0 0
- 构建表达式树
- 表达式树的构建
- 构建表达式树
- linq 表达式树的构建 Expression.Lambda
- 表达式树的构建(详解)
- 二叉树应用——后缀表达式构建表达式树
- ACMjava无根树转有根数,构建表达式
- Uva12219 递归打印树和构建表达式树
- 利用表达式树构建委托改善反射性能
- .Net4.0用表达式树构建委托改善反射性能
- 数据结构:简单算数表达式二叉树的构建和求值
- 磨练构建正则表达式模式
- 使用表达式树动态构建Linq查询条件来实现单个实体动态查询
- 表达式树的构建与显示,C++沉思录第八章
- 【数据结构学习笔记】——根据中缀表达式构建二叉树并输出
- 中缀表达式构建二叉树以及递归非递归遍历算法
- 构建表达式树注意迭代边界,被坑了一个小时
- 实战Lambda表达式-动态构建
- jenkins配置不同job触发构建
- JavaScript调试console命令
- ws-http.java 给女生使用的简单无依赖的HTTP Client库
- a label can only be part of a statement and a declaration is not a statement
- cookies , Session,sessionStorage , localStorage
- 构建表达式树
- 求子集
- 基于用户画像大数据的电商防刷架构
- NSPredicate 谓词
- 偷偷超了华为和小米,他才是真正的人生大赢家!
- 两个栈实现一个队列——栈和队列面试题(2)
- 青蛙跳台阶问题暨斐波那契数列
- 第3周项目4 顺序表应用(1)
- Swift编程语言3.0----第一章 语言基础