后缀表达式求值(顺序栈)
来源:互联网 发布:淘宝工厂店怎么开 编辑:程序博客网 时间:2024/06/04 18:42
#include<iostream>#include<malloc.h>#define MAXSIZE50using namespace std;typedef int DataType;typedef struct{DataType data[MAXSIZE];int top;}SeqStack,* PSeqStack;int main(){//函数声明PSeqStack Init_SeqStack(void);/*建空栈*/void Push_SeqStack(PSeqStack S,DataType x);/*入栈*/int Empty_SeqStack(PSeqStack S);/*判断栈是否为空*/void Pop_SeqStack(PSeqStack S,DataType * y);/*出栈*/int GetTop_SeqStack(PSeqStack S);/*取栈顶元素*/void Destroy_SeqStack(PSeqStack * S);/*销毁栈*/int IsNum(char c);/*判断字符是否为操作数*/int postfix_exp(char * A);/*后缀表达式求值*/char a[]="1285-*+42/-#";//后缀表达式cout<<postfix_exp(a);//计算结果return 0;}/*建空栈*/PSeqStack Init_SeqStack(void){PSeqStack S;S=(PSeqStack)malloc(sizeof(SeqStack));if(S){S->top = -1;//表示空栈}return S;}/*入栈*/void Push_SeqStack(PSeqStack S,DataType x){if(S->top == (MAXSIZE-1)){cout<<"栈满不能入栈!";}else{S->top++;S->data[S->top]=x;}}/*判断栈是否为空*/int Empty_SeqStack(PSeqStack S){if(S->top == -1)return 1;elsereturn 0;}/*出栈*/void Pop_SeqStack(PSeqStack S,DataType * y){if(Empty_SeqStack(S)){cout<<"栈空不能出栈!";}else{* y=S->data[S->top];S->top--;}}/*取栈顶元素*/int GetTop_SeqStack(PSeqStack S){if(Empty_SeqStack(S)){return 0;}return S->data[S->top];}/*销毁栈*/void Destroy_SeqStack(PSeqStack * S){if(* S)free(* S);* S=NULL;}/*判断字符是否为操作数*/int IsNum(char c){if(c>='0' && c<='9')return 1;elsereturn 0;}/*后缀表达式求值*/int postfix_exp(char * A){int a,b,c;char ch=*A++;PSeqStack S=Init_SeqStack();while(ch != '#'){if(IsNum(ch))//若是操作数Push_SeqStack(S,ch-48);//ch-48变整数,存入栈中else{Pop_SeqStack(S,&b);Pop_SeqStack(S,&a);switch(ch){case '+':c=a+b;break;case '-':c=a-b;break;case '*':c=a*b;break;case '/':c=a/b;break;case '%':c=a%b;break;}Push_SeqStack(S,c);//计算结果存入栈}ch=*A++;//下个字符}int result=GetTop_SeqStack(S);//取最终结果Destroy_SeqStack(&S);//销毁栈return result;}
0 0
- 后缀表达式求值(顺序栈)
- 表达式求值(后缀表达式)--栈
- 表达式求值(中缀转后缀及后缀表达式求值)
- 栈实现后缀表达式求值
- 中缀表达式转后缀表达式求值(栈的应用)
- 算术表达式求值(顺序栈实现)
- 表达式求值(顺序栈实现)
- nyist 35 表达式求值(后缀表达式)
- 栈的运用(中缀表达式转换为后缀表达式,并对后缀表达式求值。)
- 顺序栈实现表达式求值
- 顺序栈实现表达式求值
- php实现栈,后缀表达式求值
- 用栈解决后缀表达式的求值
- 栈的应用-后缀表达式运算求值
- 前、中、后缀表达式求值与栈
- 栈之前,中,后缀表达式求值
- 表达式求值(前缀、中缀、后缀)
- 任意实数后缀表达式求值(链栈)
- python编码问题初探
- MFC框架程序剖析(5)
- __delay_cycles精确延时的说明及改正
- 项目总结--看似不重要,却最重要
- 什么是Intent
- 后缀表达式求值(顺序栈)
- 重置3D MAX的所有设置
- Maven archetype插件使用
- Android中Adapter之BaseAdapter使用
- 【转】Ubuntu分区详细介绍
- tortoisegit和tortoisesvn的区别
- linux命令dd
- Linux下rename批量改变同文件夹的文件后缀名
- java