数据结构栈的应用.doc

数据结构栈的应用.doc

ID:56109086

大小:69.50 KB

页数:10页

时间:2020-03-16

数据结构栈的应用.doc_第1页
数据结构栈的应用.doc_第2页
数据结构栈的应用.doc_第3页
数据结构栈的应用.doc_第4页
数据结构栈的应用.doc_第5页
资源描述:

《数据结构栈的应用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、......《数据结构》实验报告实验序号:4          实验项目名称:栈的操作学  号1407022228姓  名王元专业、班网络工程2班实验地点1-314指导教师林仙丽实验时间一、实验目的及要求1.熟悉栈的基本概念;2.掌握栈的顺序存储结构;3.掌握栈的应用。二、实验设备(环境)及要求微型计算机;windows操作系统;MicrosoftVisualStudio6.0集成开发环境。三、实验内容与步骤1.栈的顺序表表示和实现的如下:#include#defineMax

2、Size100usingnamespacestd;typedefintElemType;typedefstruct{ElemTypedata[MaxSize];inttop;}SqStack;voidInitStack(SqStack*st)//初始化栈{st->top=-1;}intStackEmpty(SqStack*st)//判断栈为空{.专业资料.......return(st->top==-1);}voidPush(SqStack*st,ElemTypex)//元素进栈{if(st->

3、top==MaxSize-1){printf("栈上溢出!");}else{st->top++;//移动栈顶位置st->data[st->top]=x;//元素进栈}}voidPop(SqStack*st,ElemType*e)//出栈{if(st->top==-1){printf("栈下溢出");}else{*e=st->data[st->top];//元素出栈st->top--;//移动栈顶位置}}intmain(){SqStackL;SqStack*st=&L;ElemTypee;

4、inti;InitStack(st);for(i=1;i<10;++i){Push(st,i);printf("入栈元素是:%d",i);}for(i=1;i<10;++i){Pop(st,e);.专业资料.......printf("出栈元素是:%d",e);}return0;}改写以上程序,实现功能如下:调用栈操作函数实现判别一个算术表达式中的圆括号和方括号配对是否正确匹配。2.C/C++的库函数中已经实现了栈,实例如下:#include//引入栈usingnamesp

5、acestd;intmain(){inta;stacks;scanf("%d",&a);s.push(a);//入栈printf("%d",s.top());//取得栈顶元素输出s.pop();//出栈return0;}请根据以上程序,设计算法如下:判别一个算术表达式中的圆括号配对是否正确。四、分析与讨论1..专业资料.......2.对上机实践结果进行分析,上机的心得体会。五、教师评语签名:日期:成绩附源程序清单:1.#include#defineMaxSiz

6、e100usingnamespacestd;typedefcharElemType;typedefstruct.专业资料.......{ElemTypedata[MaxSize];inttop;}SqStack;voidInitStack(SqStack*st)//初始化栈{st->top=-1;}intStackEmpty(SqStack*st)//判断栈为空{return(st->top==-1);}voidPush(SqStack*st,ElemTypex)//元素进栈{if(st->to

7、p==MaxSize-1){printf("栈上溢出!");}else{st->top++;//移动栈顶位置st->data[st->top]=x;//元素进栈}}voidPop(SqStack*st,ElemType*e)//出栈{if(st->top==-1){printf("栈下溢出");}else{.专业资料.......*e=st->data[st->top];//元素出栈st->top--;//移动栈顶位置}}intmain(){SqStackL;SqStack*st=&L;

8、ElemTypee,a[MaxSize];inti,j=1,k;do{InitStack(st);gets(a);for(i=0;a[i]!='';i++){if(a[i]=='('

9、

10、a[i]=='{'

11、

12、a[i]=='[')//左括号入栈Push(st,a[i]);if(a[i]==')'){if(StackEmpty(st)==1)//判断栈是否为空{printf("多了“(”,不匹配");break;}elseif('('==st->data[st->top])//匹配成功出栈P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。