通过后缀表达式模拟计算器
来源:互联网 发布:windows ndk下载 编辑:程序博客网 时间:2024/05/29 08:10
模拟栈 stack.h
#inndef _STACK_H#define _STACK_Htypedef char Bool;typedef int StackType;typedef struct stack stack;#define false 0#define true 1#define MAXSIZE 100struct stack{StackType buf[MAXSIZE];int top;};extern Bool isEmpty(stack *ps);extern Bool isFull(stack *ps);extern void initStack(stack *ps);extern Bool push(stack *ps,StackType data);extern Bool pop(stack *ps,StackType *pdata);#endifstack.c
#include <stdio.h>#include "stack.h"Bool isEmpty(stack *ps){if(-1 == ps->top)return true;elsereturn false;}Bool isFull(stack *ps){if(MAXSIZE-1 == ps->top)return true;elsereturn false;}void initStack(stack *ps){ps->top = -1;}Bool push(stack *ps,StackType data){if(isFull(ps))return false;ps->buf[++(ps->top)] = data;return true;}Bool pop(stack *ps,StackType *pdata){if(isEmpty(ps))return false;*pdata = ps->buf[(ps->top)--];return true;}
calc.c
#include <stdio.h>#include "stack.h"void main(){struct stack s;initStack(&s);char opr[] = "32546*+*+41*+";int i=0;while('\0' != opr[i++]){//num pushif(opr[i]>='0' && opr[i]<='9'){if(!push(&s,(opr[i]-'0'))){printf("length not enough\n");return;}}//ch pop two calc pushelse if('+'==opr[i] || '-' == opr[i] || '*' == opr[i] || '/' == opr[i]){int num1,num2;if(!pop(&s,&num1) || !pop(&s,&num2)){return;}int value;switch(opr[i]){case '+':value = num2+num1;break;case '-':value = num2-num1;break;case '*':value = num2*num1;break;case '/':value = num2/num1;break;}if(!push(&s,value)){printf("length not enough\n");return;}}else{printf(" input error\n");return;}}int ret;pop(&s,&ret);printf("%s = %d\n",opr,ret);}
阅读全文
0 0
- 通过后缀表达式模拟计算器
- 计算器(后缀表达式)
- 后缀表达式及计算器
- C++后缀表达式计算器
- 数据结构之简单表达式计算器(读入中缀转后缀,通过后缀计算结果)
- C语言简易计算器(中缀表达式转后缀表达式,通过堆栈实现)
- 计算器实现---中缀表达式转后缀表达式
- 计算器:中缀表达式转后缀表达式
- c++ 中缀表达式转后缀表达式 计算器
- 使用c语言实现后缀表达式计算器
- 制作计算器,包含后缀表达式的求法
- 后缀表达式的计算器Java实现
- java使用后缀表达式实现计算器
- 后缀表达式通过栈实现表达式树
- java 逆波兰表达式 (后缀表达式) 计算器
- HDU1237简单计算器-中缀表达式-后缀表达式
- 简单计算器求值(中缀表达式转化成后缀表达式)
- 中缀表达式转后缀表达式之多项式计算器
- HDU4549_M斐波那契数列_斐波那契数列&费马小定理
- python2.7 安装scrapy后报错
- java 单例设计模式
- 栈和队列的练习
- mongodb-索引
- 通过后缀表达式模拟计算器
- Spring——AOP核心思想与实现
- BZOJ 3670: [Noi2014]动物园 KMP题解
- 6.2 APP的签名与打包
- Java锁的实例解析
- E
- 数组——二分查找法
- zookeeper的环境搭建
- LVS系列—关于arp_ingnone和arp_announce的相关说明