欢迎来到天天文库
浏览记录
ID:35222196
大小:74.00 KB
页数:3页
时间:2019-03-22
《实验报告-栈和队列的基本操作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、计算机学院实验报告专用纸实验室:网络实验室机号:网34实验日期:2008年4月3日姓名XXX班级课程名称数据结构任课教师实验项目名称栈和队列的基本操作指导教师实验组别X同组者无教师评语及成绩:实验成绩:教师签字:(请按照实验报告的有关要求书写。一般必须包括:1、实验目的;2、实验内容;3、实验步骤与方法;4、实验数据与程序清单;5、出现的问题与解决方法;6、实验结果、结果分析与体会等内容)1、实验目的(1)掌握顺序栈的基本操作:初始化栈、判栈空否、入栈、出栈、取栈顶数据元素等运算以及程序实现方法;(2)掌握队列的基本操作:初始化队列、判队空否、入队、出队等运算以及程序实现方法。2、实
2、验内容利用栈的基本操作实现一个判断算术表达式中包含圆括号、方括号是否正确配对的程序。3、实验步骤和方法(1)定义栈的顺序存取结构;(2)分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等);(3)定义一个函数来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确;右括号多于左括号;左括号多于右括号;左右括号匹配正确;(4)设计一个测试主函数进行测试。(5)对程序的运行结果进行分析。4、实验数据与程序清单3计算机学院实验报告附页姓名XXX班级实验名称栈和队列的基本操作和简单程序#include#defineMaxS
3、ize100typedefstruct{intdata[MaxSize]; inttop;}SqStack;voidInitStack(SqStack*st)//初始化栈{ st->top=-1;}intStackEmpty(SqStack*st)//判断栈为空{ return(st->top==-1);}voidPush(SqStack*st,intx)//元素进栈{ if(st->top==MaxSize-1) printf("栈上溢出!"); else { st->top++; st->data[st->top]=
4、x; }}voidPop(SqStack*st)//退栈{ if(st->top==-1) printf("栈下溢出"); else st->top--;}intGettop(SqStack*st)//获得栈顶元素{ if(st->top==-1) { printf("栈空"); return0; } else returnst->data[st->top];3计算机学院实验报告附页姓名XXX班级实验名称栈和队列的基本操作和简单程序}voidDisplay(SqStack*st)//打印栈里元素{
5、 inti; printf("栈中元素:"); for(i=st->top;i>=0;--i) printf("%d",st->data[i]); printf("");}intmain()//测试{ SqStackL; SqStack*st=&L; InitStack(st); printf("栈空:%d",StackEmpty(st)); for(inti=1;i<10;++i) Push(st,i); Display(st); printf("退一次栈"); Pop(st); printf(
6、"栈顶元素:%d",Gettop(st)); Pop(st); Display(st); return0;}5、实验结果:3
此文档下载收益归作者所有