下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 栈和队列的应用

栈和队列的应用.doc

栈和队列的应用

李飞彩
2017-10-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《栈和队列的应用doc》,可适用于高中教育领域

栈和队列的应用【实验题目】栈和队列的应用【实验内容】括号的配对问题【实验目的】掌握栈和队列的概念及工作原理运用其原理完成实验题目中的内容。【实验要求】通过程序设计实现括号的配对问题。更好的掌握与理解课堂上老师所讲的概念与原理通过栈和队列的方法实现目标【设计原理】在算法中设置一个栈读入一个括号若是有括号则活着使置于栈顶的最急迫的期待得以消解或者是不合法的情况若是左括号则作为一个新的更急迫的期待压入栈中自然使原有的栈中的所有未消解的期待的急迫性都降了一级。在算法的开始和结束时栈都应该是空的。【程序清单及注释说明】typedefcharSElemType#include"malloch"#include"stdioh"#include"mathh"#include"processh"exit()#defineOK#defineERROR#defineTRUE#defineFALSEtypedefintStatusStatus是函数的类型,其值是函数结果状态代码如OK等#defineSTACKINITSIZE存储空间初始分配量#defineSTACKINCREMENT存储空间分配增量structSqStack{SElemType*base在栈构造之前和销毁之后base的值为SElemType*top栈顶指针intstacksize当前已分配的存储空间以元素为单位}顺序栈StatusInitStack(SqStackS){Sbase=(SElemType*)malloc(STACKINITSIZE*sizeof(SElemType))Stop=Sbaseif(!Sbase)returnERRORSstacksize=STACKINITSIZEreturnOK}StatusStackEmpty(SqStackS){if(Sbase==Stop)returnTRUEelsereturnFALSE}StatusPush(SqStackS,SElemTypee){if(StopSbase>=Sstacksize){Sbase=(SElemType*)realloc(Sbase,(STACKINITSIZESstacksize)*sizeof(SElemType))if(!Sbase)returnERRORStop=SbaseSstacksizeSstacksize=SstacksizeSTACKINITSIZE}*Stop=eStopreturnOK}StatusPop(SqStackS,SElemTypee){if(Sbase==Stop)returnERRORe=*StopreturnOK}voidcheck()对于输入的任意一个字符串检验括号是否配对{SqStacksSElemTypech,*p,eif(InitStack(s))初始化栈成功{printf("请输入所需要匹配开闭括号的表达式:")scanf("s",ch)p=chwhile(*p)没到串尾switch(*p){case'(':case'':Push(s,*p)pbreak左括号入栈且pcase')':case'':if(!StackEmpty(s))栈不空{Pop(s,e)弹出栈顶元素if(*p==')'e!='('||*p==''e!='')弹出的栈顶元素与*p不配对{printf("n括号没有成对出现n")exit(ERROR)}else{pbreak跳出switch语句}}else栈空{printf("n缺少左括号n")exit(ERROR)}default:p其它字符不处理指针向后移}if(StackEmpty(s))字符串结束时栈空printf("n开闭括号配对出现n")elseprintf("n缺少右括号n")}}voidmain(){printf("判别表达式中开闭括号是否配对出现nnn")check()}【运行与测试及结果】【问题及解决方法】刚开始的时候如果进行了一组括号匹配之后再进行下一组的时候就会发生错误后来经查找得知:应该注意初始化栈的位置不能放在最前面否则上一组不匹配的结果会保留在栈中对下一次匹配造成影响形成错误的结果。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

栈和队列的应用

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利