顺序栈基本操作实验报告记录2————————————————————————————————作者:————————————————————————————————日期:3数据结构实验三课程数据结构实验名称顺序栈基本操作第页专业班级学号姓名实验日期:年月日评分一、实验目的1.熟悉并能实现栈的定义和基本操作
2.了解和掌握栈的应用
二、实验要求1.进行栈的基本操作时要注意栈"后进先出"的特性
2.编写完整程序完成下面的实验内容并上机运行
3.整理并上交实验报告
三、实验内容1.编写程序任意输入栈长度和栈中的元素值,构造一个顺序栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作
2.编写程序实现表达式求值,即验证某算术表达式的正确性,若正确,则计算该算术表达式的值
主要功能描述如下:(1)从键盘上输入表达式
(2)分析该表达式是否合法:
a)是数字,则判断该数字的合法性
若合法,则压入数据到堆栈中
b)是规定的运算符,则根据规则进行处理
在处理过程中,将计算该表达式的值
c)若是其它字符,则返回错误信息
(3)若上述处理过程中没有发现错误,则认为该表达式合法,并打印处理结果
程序中应主要包含下面几个功能函数:
lvoidinitstack():初始化堆栈
lintMake_str():语法检查并计算4
lintpush_operate(intoperate):将操作码压入堆栈
lintpush_num(doublenum):将操作数压入堆栈
lintprocede(intoperate):处理操作码
lintchange_opnd(intoperate):将字符型操作码转换成优先级
lintpush_opnd(intoperate):将操作码压入堆栈
lintpop_opnd():将操作码弹出堆栈
lintcaculate(intcur_opnd):简单计算+,-,*,/