《算法设计与分析》实验报告
1
1、实验目的
(1掌握栈“后进先出”的特点;(2掌握栈的典型应用后缀表达式求值。
2、实验内容
(1用键盘输入一个整数后缀表达式(操作数的范围是0~9,运算符只含、、、,而且中间不可以有空格),使用循环程序从左向右读入表达式;(2如果读入的是操作数,直接进入操作数栈;(3如果读入的是运算符,立即从操作数栈取出所需的操作数,计算操作数运算的值,并将计算结果存回操作数栈;(4检验程序运行结果。
3、实验要求
(1分析后缀表达式求值的算法思想,用C(C)语言完成程序设计。
(2上机调试通过实验程序。(3给出具体的算法分析,包括时间复杂度和空间复杂度等。(4撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。(5本程序调试通过以后,添加到原教材验证性实验3的菜单中去。
4、实验步骤与源程序
⑴实验步骤我先从具体的问题中抽象出适当的数学模型,然后设计出相应的算法,其中,需要设计一个函
数来求后缀表达式,设计另外一个函数来求后缀表达式的值,最后,编写主函数,串接程序,并调试程序,得出实验结果。
⑵源代码i
cludestdiohdefi
eMaxle
88typedefstructchardataMaxle
i
ttopopstacktypedefstructfloatdataMaxle
i
ttopstackvoidtra
scharstrcharexpopstackop
charch
求后缀表达式
fi
ti0t0
《算法设计与分析》实验报告
2
optop1
chstri
i
whilech0
switchch
case
optopopdataoptopch
break
case
whileopdataoptop
exptopdataoptop
optop
t
optop
break
case
case
whileoptop1opdataoptop
exptopdataoptop
optop
t
optop
opdataoptopch
break
case
case
whileoptopoptop
exptopdataoptop
f《算法设计与分析》实验报告
optop
3
t
optop
opdataoptopch
break
case
输入为空格则跳过
break
default
whilech0ch9
exptch
t
chstri
i
i
expt
t
chstri
i
whileoptop1
exptopdataoptop
t
optop
expt0
floatcompvaluecharexp
后缀表达式求值
stackst
ffloatd
《算法设计与分析》实验报告
4
charch
i
tt0
sttop1
chexpt
t
whilech0
switchch
case
stdatasttop1stdatasttop1stdatasttop
sttop
break
case
stdatasttop1stdatasttop1stdatasttop
sttop
break
case
stdatasttop1stdatasttop1stdatasttop
sttop
break
case
ifstdatar