【实验目的】
使学生深入了解栈的特性,以便在实际问题背景下灵活运用栈,同时还将巩固对这种结构的构造方法的掌握及基本操作的实现。
【实验内容】
- 问题描述:表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型的例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。
- 基本要求:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用教科书表3.1给出的算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教科书的例3-1演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。
- 测试数据:教科书例3-1的算术表达式3*(7-2),以及下列表达式:
8;1+2+3+4;88-15;1024/48;(20+2)(6/2);3-3-3;8/(9-9);2(6+2*(3+6*(6+6)));(((6+6)*6+3)*2+6)*2。 - 实现提示:
(1)、采用优先级法,设置运算符栈和运算数栈,先将表达式转换成后缀表示,然后求值。
(2)、在读入