栈的实验报告实验总结和心得合集 | 您所在的位置:网站首页 › 栈和队列基本操作的实现实验 › 栈的实验报告实验总结和心得合集 |
栈的应⽤实验报告 (⼀) 栈的应⽤ 1、实验⽬的: (1)掌握栈的特点及其存储⽅法; (2)掌握栈的常见算法以及程序实现; (3)了解递归的⼯作过程。 2、实验内容:表达式求值问题。 这⾥限定的表达式求值问题是: ⽤户输⼊⼀个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法数学表达式,计算该表达 式的运算结果。 算术表达式求值过程是: STEP 1:先将算术表达式转换成后缀表达式。 STEP 2:然后对该后缀表达式求值。 3、实验说明:在设计相关算法中⽤到栈,这⾥采⽤顺序栈存储结构。 中缀表达式exp ==》后缀表达式postexp伪代码如下: 初始化运算符栈op; 将'='进栈; 从exp读取字符ch; while (ch!='\0') { if (ch不为运算符) 将后续的所有数字均依次存放到postexp中,并 以字符'#'标志数值串结束; else switch(Precede(op栈顶运算符,ch)) { case '': //栈顶运算符应先执⾏,所以出栈并 存放到postexp中
退栈运算符并将其存放到postexp中; break; } } 若字符串exp扫描完毕,则将运算符栈 op中'='之前的所有运算符依次出栈并 存放到postexp中。最后得到后缀表达 式postexp; 对后缀表达式postexp求值伪代码如下: while (从postexp读取字符ch,ch!='\0') { 若ch为数字,将后续的所有数字构成⼀个整数存放 到数值栈st中。 若ch为“+”,则从数值栈st中退栈两个运算数,相加 后进栈st中。 若ch为“-”,则从数值栈st中退栈两个运算数,相 |
CopyRight 2018-2019 实验室设备网 版权所有 |