实验2-栈与队列的应用实验报告

本文由用户“safweafaesfewasesrew”分享发布 更新时间:2021-10-04 18:59:51 举报文档

以下为《实验2-栈与队列的应用实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

湖南应用***实验(训)报告

课程名称

数据结构与算法

课程代码

***04

成绩评定





学 院

信息***

专业

物联网工程

指导老师

聂某某



学生姓名

张宇

学号

***8

班级

物联20103



实验地点

实验楼101

实验日期

2021年 4月 7日



小组成员

无



实验类型

□演示性  □验证性    □综合性    设计研究    □其它



实验项目名称

栈与队列的应用



一、实验目的

1、掌握栈与队列的定义及实现;

2、掌握利用栈与队列求解算术表达式的方法。



二、实验主要仪器设备

1. 硬件:计算机

2. 软件:Windows 7,VC++6.0



三、实验内容及要求

将中缀表达式转化成后缀表达式存储在队列中,然后利用后缀表达式求表达式的值并输出。

将中缀表达式转化成后缀的思想:

1、创建一空队列,用来存放后缀表达式,建立并初始化操作符某某OPTR,将表达式起始符“#”压入OPTR栈。

2、依次读入表达式中每个字符ch,循环执行(3)至(5),直至求出整个表达式转换完毕。

3、取出OPTR的栈顶元素,当OPTR的栈顶元素和当前读入的字符ch均为“#”时,整个中缀表达式转换完毕。

4、若ch不是运算符,则进队,读入下一字符ch。

5、若ch是运算符,则根据OPTR的栈顶元素和ch的优先权比较结果,做不同的处理。

① 若是小于,则ch压入OPTR栈,读入下一字符ch。

② 若是大于,则弹出OPTR栈顶的运算符,进队。

③ 若是等于,则OPTR的栈顶元素是“(”且ch是“)”,这时弹出OPTR栈顶的“(”,相当于去掉括号,然后读入下一字符ch。

对后缀表达式进行计算的具体步骤为:

建立一个栈S从左到右读后缀表达式,读到数字就将它转换为数值压入栈S中,读到运算符则从栈中依次弹出两个数分别到Y和X,然后以“X运算符Y”的形式计算出结果,再压进栈S中。如果后缀表达式未读完,重复执行上面过程,最后输出栈顶的数值即可结束。



四、实验过程(包括算法流程图(或原理图、电路图)、程序源码、运行结果图等)

/

源代码:#include

#include

#include

#include

#include

#include

#define MAX 100

using namespace std;

//设置优先级(注意默认操作数的优先级最高,即其不需要进栈,进栈的都是运算符)

map p;

//一些初始化********************************************

struct Node{

double num;//操作数

char op;//操作符

bool flag;//true表示操作数,false表示操作符

};

typedef struct Node node;

stack s;//操作符某某

stack s1;//存放操作数的,为了计算后缀表达式的值

queue q;//后缀表达式队列

//******************************************************

//中缀转后缀函数

void change(string str){

node temp;

for (in 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 hile (!s1.empty()){//初始化栈s1

s1.pop();

}

double answer=calculate();

cout 请点击下方选择您需要的文档下载。

  1. C语言程序设计 实训报告册
  2. 选择结构程序设计实验报告
  3. 计算机程序设计(C)数据类型及运算实验报告
  4. 实验报告参考内容
  5. c语言实验报告3- 选择结构
  6. 实验报告表 5  1进程同步实验观察结果记录表
  7. 课程设计报告
  8. 《选择结构语句》课件PPT
  9. 空气中氧气含量测定周测习题

以上为《实验2-栈与队列的应用实验报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览