堆栈的应用实验报告.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深 圳 大 学 实 验 报 告 课程名称: 数据结构 实验项目名称: 堆栈应用 学院: 计算机与软件学院 专业: 未分 指导教师: 白鉴聪 报告人:孙立尧 学号:2011150188 班级: 计软4班 实验时间: 2012 年 9 月 26 日 实验报告提交时间: 2012年10月15日 教务处制 一、实验目的与要求: (1)掌握堆栈的基本概念 掌握顺序栈的存储结构 掌握顺序栈的进栈、出栈等算法 了解堆栈的应用和实现 (2)熟悉C++语言编程 熟练使用C++语言实现顺序栈结构的说明、创建以及其存储表示 熟练应用顺序栈数据结构编程实现判断表达式中括号是否匹配的算法 方法、步骤:(说明程序相关的算法原理或知识内容,程序设计的思路和方法,可以用流程图表述,程序主要数据结构的设计、主要函数之间的调用关系等) 实验内容 1、问题描述 掌握C++中STL自带的堆栈对象应用。 演示堆栈对象的各种操作,以字符串的逆序输出为例子 2、算法描述 输入一个字符串,按输入顺序将字符压入堆栈,然后根据堆栈后进先出的特点,做逆序输出 3、输入 第一行输入t,表示有t个测试实例 第二起,每一行输入一个字符串 输出 每行逆序输出每一个字符串 输入样本 2 abcdef Aaabbb 输出样本 fdecba bbbaaa 实验步骤 1、堆栈对象的定义 2、堆栈操作的演示,包括入栈、出栈、取栈顶元素、判断栈空 三.实验过程及内容:(对程序代码进行说明和分析,越详细越好,代码排版要整齐,可读性要高) #includeiostream #includestring #includestack using namespace std; int main(){ stackchar s; //创建一个存放字符数据的堆栈对象 int i,t; string str; //接收输入的字符串 cint; while(t--){ cinstr; for(i=0;istr.length();i++) s.push(str[i]); //把字符串的每个字符压入堆栈 while(!s.empty()){ //判断堆栈非空 couts.top(); //获取栈顶元素,并输出 s.pop(); //把栈顶元素弹出 } coutendl; } return 0; } #includeiostream #includestack //使用C++自带的STL栈 #includestring #includestring #includecstdlib #includecstring #includeiomanip using namespace std; #define OK 0 #define ERROR -1 #define OVERFLOW -1 #define OPSETSIZE 7 //运算符号集合长度,目前只有7个符号 typedef int Status; char Prior[7][7]={ //算符间的优先关系 ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,=, , ,,,, ,,, ,,,,, ,=, }; float Operate(float a,unsigned char thera,float b); char OPSET[OPSETSIZE]={+,-,*,/,(,),#}; //运算符集合 Status In(char Test,char *TestOp); //判断字符Test是否是运算符

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档