考研复试准备-c语言-数据结构-栈-顺序栈-顺序栈的应用(2)-后缀表达式求值

本文介绍如何利用栈来求解后缀表达式的值。从中缀表达式(如(a+b+cd)/e)转换为后缀表达式(abcd++e/),在遍历后缀表达式过程中,遇到数字入栈,遇到运算符则出栈进行计算,并将结果存回栈中。通过算法思想解析、代码展示和测试结果验证了方法的正确性。
摘要由CSDN通过智能技术生成


一、题目

   编写函数,求后缀表达式的数值,其中后缀式存于一个字
   符数组exp中,exp中最后一个字符为“\0”,作为结束符,
   并且假设后缀式中的数字都只有一位。本题中所出现的除
   法运算,皆为整除运算,如2/3结果为0、3/2结果为1。

二、算法思想

比如:
中缀表达式:(a+b+cd)/e
后缀表达式:abcd
++e/
通过观察后缀表达式不难观察到:
1.数字入栈;
2.运算符时出栈两次,得a op b,结果入栈;
3.后缀表达式中只有数字和运算符。

算法思想:
1.新建int型栈;
2.遍历exp数组,
若为数字,则入栈(判断栈满+入栈);
若为运算符,出栈两次,得a op b,结果入栈;
3.stack[top]即为答案。

三、代码

#include<stdio.h>

#define MaxSize 100
int opp(int start, char op, int fin){
   
	if (op == '+')
		return start + fin;
	if (op == '-')
		return start - fin;
	if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值