栈的实验报告实验总结和心得合集 您所在的位置:网站首页 栈和队列基本操作的实现实验 栈的实验报告实验总结和心得合集

栈的实验报告实验总结和心得合集

2023-05-06 10:23| 来源: 网络整理| 查看: 265

栈的应⽤实验报告

(⼀) 栈的应⽤

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 实验室设备网 版权所有