• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >数据结构 > 数据结构实验之栈三:后缀式求值

数据结构实验之栈三:后缀式求值

作者:FightingEveryDay365的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-17

FightingEveryDay365的博客通过本文主要向大家介绍了数据结构实验栈和队列,数据结构栈实验报告,数据结构栈实验心得,数据结构栈实验,数据结构实验报告等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

http://blog.csdn.net/sgbfblog/article/details/8001651

链接为转载的 后缀表达式转换成中缀表达式详解

Problem Description
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。 
Input
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。 
Output
求该后缀式所对应的算术表达式的值,并输出之。 
Example Input
59*684/-3*+#Example Output
57Hint
基本操作数都是一位正整数! 

 

 

 

这个方法是在网络上搜罗的,方法很巧妙。原理也是栈,只是用了数组模拟。

 

#include<stdio.h>
#include<string.h>
int main(){
	int top=0,i,k,s,num[50];
	char str;
	while(scanf("%c",&str),str!='#'){
		if(str>='0'&&str<='9')
		num[++top]=str-48;//如果是数字,直接把字符型的str通过-48变换成整形的num[]堆入栈中。
		else{
			switch(str){//如果不是数字,那么就是运算符。通过链接中知识点,我们可以知道出现运算符,直接运算栈顶和栈顶的下一个值。
				case '+':
					s=(num[top-1])+(num[top]);
					break;
				case '-':
					s=(num[top-1])-(num[top]);
					break;
				case '*':
					s=(num[top-1])*(num[top]);
					break;
				case '/':
					s=(num[top-1])/(num[top]);
			}
			top--;//出栈
			num[top]=s;//把运算后的s压入栈中,便于以后使用。直到str全部运算结束,最后一个数字就是栈顶,输出。
		}
	}
	printf("%d\n",num[top]);
	return 0;
} 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 数据结构实验之栈三:后缀式求值

相关文章

  • 2017-06-28数据结构教程 第三十七课 实验八 排序实验
  • 2017-06-28迭代算法与递归算法的概念及区别
  • 2017-06-28java中实现希尔排序算法
  • 2017-06-28数据结构教程 第三十八课 文件概念、顺序文件
  • 2017-06-28数据结构教程 第二十九课 静态查找表(一)顺序表的查找
  • 2017-06-28VFP中实现选择排序
  • 2017-08-17面向对象编程(OOP)理解
  • 2017-06-28数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用
  • 2017-06-28数据结构教程 第二十七课 实验六 二叉树实验
  • 2017-06-28数据结构教程 第十四课 串的定义

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 数据结构教程 第二十六课 图的定义与术语
    • 数据结构教程 第四十课 总复习
    • 二进制格雷码与自然二进制码的互换
    • 数据结构教程 第六课 线性表的顺序表示和实现
    • 数据结构C语言实现之线性表
    • 数据结构教程 第三十三课 哈希表(二)
    • 数据结构教程 第三十九课 索引文件
    • 数据结构教程 第三十课 静态查找表(二)有序表的查找
    • 做幻方
    • PB动态创建菜单的核心算法描述

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有