栈的应用
来源:互联网 发布:2016年驾校招生数据 编辑:程序博客网 时间:2024/06/11 10:47
栈的应用篇1:后缀表达式的计算
栈作为一种运算受限的后进先出的线性表,其应用面很广,最主要的是在于它的记忆功能,在中断,递归函数中运用灵活,今总结栈的一个小应用,即用于后缀表达式的计算,具体过程如下:
#include <iostream> using namespace std;#define MAXSIZE 100/** 函数功能: 计算后缀表达式的值,其中后缀式存于一数组exp中,最后一个字符是'\0', 作为结束符,且假设后缀表达式中的数字只有一位,除法当做整除。**///计算两个数字之间的运算,包括加减乘除运算int op(int a,char ch,int b){ if(ch == '+') return a+b; if(ch == '-') return a-b; if(ch == '*') return a*b; if(ch == '/') { if(b == 0) { cout<<"ERROR"<<endl; return 0; }else return a/b; }}//后缀式计算函数,利用栈的思想int comp(char exp[]){ int i=0,c=0,a=0,b=0; //构建一个栈并初始化,这种构建方式不浪费空间 int stack[MAXSIZE]; int top = -1; char OP; while(exp[i] != '\0') //也可用for循环 { if(exp[i]>='0' && exp[i]<='9') stack[++top] = exp[i]-'0'; //将字符型转化成整形并入栈 else { OP = exp[i]; //去运算符 b = stack[top--]; //取得第二个操作数,因第二个后入栈 a = stack[top--]; //取得第一个操作数,下同 c = op(a,OP,b); //计算运算结果 stack[++top] = c; //操作结果入栈 } ++i; //自增1 } return stack[top];}int main(void){ int vol; char test[10] = {'4','5','+','6','2','*','+','4','/','\0'}; vol = comp(test); //cout<<vol<<endl; cout<<"运算结果为: "<<vol<<endl; return 0;}
与君共勉~
阅读全文
0 0
- 栈&栈的应用
- 栈的应用
- 栈的应用
- 简单的栈应用
- 栈的应用
- 栈的简单应用
- 栈的应用
- 栈的应用
- hdu1022栈的应用
- 栈的应用举例
- 栈的应用
- 栈的简单应用
- 数据结构栈的应用
- 栈的简单应用
- 栈的简单应用
- 栈的应用
- 栈的应用
- 栈的经典应用
- [cnblogs镜像]Unity 获取坐标函数 坐标转换函数
- 跨平台ssh客户端Xshell使用指南
- 二叉树的深度
- Python入门记——函数
- [cnblogs镜像]Unity 脚本挂载位置
- 栈的应用
- [cnblogs镜像]Unity脚本生命周期 图解
- 两个链表的第一个公共结点
- [cnblogs镜像]Unity脚本中可以引用的类型
- C结构体的位域
- [cnblogs镜像]Unity局部坐标系与世界坐标系的区别
- [cnblogs镜像]Unity 控制public/private 是否暴露给Inspector面板
- 项目开发环境搭建手记(4.Maven私服Nexus安装及自动部署到Tomcat)
- Windows7-64bit下安装python、pip和opencv库