实验03:堆栈应用括号匹配实验报告.doc深圳大学实验报告课程名称: 数据结构实验与课程设计实验项目名称: 堆栈应用括号匹配实验学院上杨芳专业:指导教师言报告人:学号三班级:实验时间: 实验报告提交时间: 教务处制一、 实验目的掌握堆栈的基本原理掌握堆栈的存储结构掌握堆栈的进栈、弹栈、判断栈空的实现方法掌握应用堆栈实现括号匹配的原理和实现方法二、 实验要求熟悉C++语言编程熟练使用C++语言实现堆栈的进栈Push、插入Pop、判断栈空等操作熟练使用堆栈实现括号匹配算法三、 实验内容本次实验有两项内容:(一)堆栈应用括号匹配1、 问题描述一个算术表达式中包括圆括号、方括号和花括号三种形式的括号编程实现判别表达式中括号是否正确匹配的算法2、 算法顺序扫描算术表达式若算术表达式扫描完成,此时如果栈空,则正确返|n|(0);如果栈未空,说明左括号多于右括号,返回(-3)从算术表达式中取出一个字符,如果是左括号('('或'['或则让该括号进栈(PUSH)如果是右括号(')'或']'或'}'):⑵「、如果栈为空,则说明右括号多于左括号,返|n|(-2)⑵、如果栈不为空,则从栈顶弹出(POP)一个括号:若括号匹配,则转1继续进行判断;否则,说明左右括号配对次序不正确,返H(-l)3、 输入第一行:样木个数,假设为』第二到n+1行,每一行是一个样木(算术表达式串),共n个测试样木。4、 输入样本4{[(1+2)*3]-1){[(1+2]*3)-1}(1+2)*3)-1)([(1+2)*3-1]5、 输出共有n行,每一行是一个测试结果,有四种结果:0:左右括号匹配正确 {[(1+2)*3]-1}-1:左右括号配对次序不正确([(1+2]*3)-1}-2:右括号多于左括号-3:左括号多于右括号(1+2)*3)-1}([(1+2)*3-1]6、输出样木0-1-2-3(二)数制转换1、问题描述对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=,求2进制转换整数部分19, =9•••1 *2=…09/2=4…1 *2= -04/2=2…0 *2
实验03:堆栈应用括号匹配实验报告 来自淘豆网m.daumloan.com转载请标明出处.