数据结构实验之栈与队列三:后缀式求值
来源:互联网 发布:elsevier是什么数据库 编辑:程序博客网 时间:2024/06/10 04:52
#include <iostream>#include <stdio.h>#include <malloc.h>using namespace std;typedef struct SNode{ int Data; struct SNode *Next;}*Stack;void MakeEmpty(Stack PtrS){ PtrS->Next = NULL;}Stack CreatStack(){ Stack PtrS; PtrS = (Stack)malloc(sizeof(struct SNode)); if(PtrS == NULL) exit(-1); MakeEmpty(PtrS); return PtrS;}int IsEmpty(Stack PtrS){ return PtrS->Next == NULL;}void Push(int X, Stack PtrS){ Stack p; p = (Stack)malloc(sizeof(SNode)); p->Data = X; p->Next = PtrS->Next; PtrS->Next = p;}int Pop(Stack PtrS){ if(!IsEmpty(PtrS)) { int Topc; Stack FirstCell = PtrS->Next; PtrS->Next = FirstCell->Next; Topc = FirstCell->Data; free(FirstCell); return Topc; } else exit(-1);}int Add(char X, Stack PtrS){ int a, b; a = Pop(PtrS); b = Pop(PtrS); switch(X) { case '+': return (b+a);break; case '-': return (b-a);break; case '*': return (b*a);break; case '/': return (b/a);break; default : return 0; } return 0;}void Trans(char X, Stack PtrS){ if(X >= 48 && X <= 57) Push((X-'0'), PtrS);//强制类型转换 else { int a = Add(X, PtrS); Push(a, PtrS); }}int main(){ Stack PtrS; PtrS = CreatStack(); char c[100]; gets(c); for(int i=0; c[i]!='#'; i++) { Trans(c[i], PtrS); } cout<<Pop(PtrS); return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 数据结构实验之栈与队列三:后缀式求值
- 2133 数据结构实验之栈与队列三:后缀式求值
- 2133-数据结构实验之栈与队列三:后缀式求值
- Docker 实战笔记
- Diffie-Hellman秘钥交换算法到Oakley密钥算法
- Generate Parentheses--LeetCode
- Android攻防二
- IntelliJ远程调试教程
- 数据结构实验之栈与队列三:后缀式求值
- 我的Python笔记知识点总结
- WIN DLL
- IDEA中搭建struts2项目
- 11 cookie&&session的学习笔记
- Linux下查看文件精确到秒的修改时间
- poj 3468 线段树
- poj1094 Sorting It All Out
- js中for循环的作用域;函数调用的理解;数组对象的理解;