- 18
- 0
- 约4.86千字
- 约 14页
- 2017-03-03 发布于湖北
- 举报
课程题目:
数据结构试验
学院:
班级:
姓名:
学号:
实验题目:栈的应用
实验内容:算术表达式求值
实验目的:掌握栈和队列的概念及工作原理,运用其原理完成实验题目中的内容。
实验要求:为了使学生更好的掌握与理解课堂上老师所讲的概念与原理,实验前每个学生要认真预习所做的实验内容及编写源程序伪码(写在纸上及盘中均可)
实验学时:4学时
设计原理:任何一个表达式都是有操作数、运算符和界限符组成的。我们把运算符和界限符统称为算符,它们构成的集合命名为OP。根据简单算术表达式的运算规则,在运算的每一步中,任意两个相继出现的算符a和b之间的优先关系至多是下面三种关系之一:
ab a的优先权低于b
a=b a的优先权等于b
ab a的优先权大于b
为实现算符优先算法,可以使用两个工作栈。一个为OPTR,用以寄存预算符;另一个为OPND,用以寄存操作数或运算结果。算法基本思想:
⑴.首先置操作数栈为空栈,表达式起始运算符“#”为运算符栈的基本元素;
⑵.依次读入表达式中每个字符,若是操作数则进OPND栈,若是运算符则和OPTR栈的栈顶运算符比较优先权执行相应操作,直至整个表达式求值完毕(即OPTR栈的栈顶元素和当前读入的字符均为“#”)。
详细程序清单及注释说明:
#include stdio.h
#include conio.h
#inclu
原创力文档

文档评论(0)