数据结构作业:用算符优先法求算术表达式值

本文介绍了一种解决数据结构作业的方法,即根据算术表达式的规则,利用算符优先法来计算表达式的值。程序设计中涉及了判断运算符、比较运算符优先级以及执行二元运算的功能,并要求输入的表达式以#开始和结束,且包含非负整数和特定运算符。给出的代码示例实现了这一过程。
摘要由CSDN通过智能技术生成

问题描述:假设算术表达式中可以包含+,-,*,/,(,)这6个运算符,要计算的表达式以字符序列的形式在程序运行时输入。为了便于实现,规定:(1) 每个表达式均以字符#开始,以#号结束,(例如,#23*(13+8)-7*6+100# ),表达式中不能出现数字和运算符以外的其它字符(空格也不行);(2)表达式中的运算数只能是非负整数;(3)输入的表达式都是合法的。

编写程序,完成输入一个合法的算述表达式,输出其运算结果。(例如,#23*(13-8)-7*6+100#,则输出: 173)

提示:通过教材中第78页的案例3.3分析,对算法3.22中调用的几个函数予以实现:

  1.  函数In(L,c):判断c是否为运算符;

 //L是存放运算法的集合(可以用线性表表示,也可以用一维数组表示

// c是字符,若c是运算符则返回值1,否则返回0。也可以用别的方法

  1.  函数Precede(t1,t2):

//判断运算符t1和t2的优先级,返回值用>

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值