第六周项目5 后缀表达式
来源:互联网 发布:angrybots源码 编辑:程序博客网 时间:2024/06/05 05:03
点击打开链接
#include <stdio.h> #include <stdlib.h> #include "sqstack.h" #define MaxOp 7 struct { char ch; int pri; } lpri[]= {{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6}}, rpri[]= {{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1}}; int leftpri(char op) { int i; for (i=0; i<MaxOp; i++) if (lpri[i].ch==op) return lpri[i].pri; } int rightpri(char op) { int i; for (i=0; i<MaxOp; i++) if (rpri[i].ch==op) return rpri[i].pri; } bool InOp(char ch) { if (ch=='(' || ch==')' || ch=='+' || ch=='-' || ch=='*' || ch=='/') return true; else return false; } int Precede(char op1,char op2) { if (leftpri(op1)==rightpri(op2)) return 0; else if (leftpri(op1)<rightpri(op2)) return -1; else return 1; } void trans(char *exp,char postexp[]) { SqStack *opstack; int i=0; ElemType ch; InitStack(opstack); Push(opstack, '='); while (*exp!='\0') { if (!InOp(*exp)) { while (*exp>='0' && *exp<='9') { postexp[i++]=*exp; exp++; } postexp[i++]='#'; } else //为运算符的情况 { GetTop(opstack, ch); switch(Precede(ch ,*exp)) { case -1: Push(opstack, *exp); exp++; break; case 0: Pop(opstack, ch); exp++; break; case 1: postexp[i++]=ch; Pop(opstack, ch); break; } } } //while (*exp!='\0') Pop(opstack, ch); while (ch!='=') { postexp[i++]=ch; Pop(opstack, ch); } postexp[i]='\0'; DestroyStack(opstack); } int main() { char exp[]="(56-20)/(4+2)"; char postexp[200]; trans(exp,postexp); printf("中缀表达式:%s\n",exp); printf("后缀表达式:%s\n",postexp); return 0; }
0 0
- 第六周项目(5):后缀表达式
- 第六周—项目5 - 后缀表达式
- 第六周--项目5后缀表达式
- 第六周项目5-后缀表达式
- 第六周 项目5-后缀表达式
- 第六周 项目5 后缀表达式
- 第六周 项目5-后缀表达式
- 第六周项目5-后缀表达式
- 第六周项目5--后缀表达式
- 第六周项目5--后缀表达式
- 第六周项目5—后缀表达式
- 第六周项目5-后缀表达式
- 第六周项目5--后缀表达式
- 第六周项目5-后缀表达式
- 第六周项目5--后缀表达式
- 第六周项目5—后缀表达式
- 第六周项目5后缀表达式
- 第六周 项目5-后缀表达式
- Git 常用命令速查表(图文+表格)
- 第14周项目4(4)输出一些简单回路
- iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮
- 快速破解本地的mysql用户名和密码
- 第十六周 项目一 (7)归并排序
- 第六周项目5 后缀表达式
- 接口和抽象类的区别和联系
- 第十二周-迷宫问题(用深度遍历算法)
- 第十六周项目7 归并排序
- 最接近零的子数组和_LintCode
- 【Android入门】界面布局中的错误
- javaweb页面嵌入天气显示
- mapreduce入门 note2 【mapreduce标准流程|】
- 分享一道伯克利 CS 61A 关于高阶函数的一道Python作业题(2)