精品文档。1欢迎下载《数据结构》实验报告实验序号: 4 实验项目名称:栈的操作学号姓名专业、班实验地点指导教师实验时间一、实验目的及要求1. 熟悉栈的基本概念;2. 掌握栈的顺序存储结构;3.掌握栈的应用。二、实验设备(环境)及要求微型计算机;windows 操作系统;Microsoft Visual Studio 6.0集成开发环境。三、实验内容与步骤1. 栈的顺序表表示和实现的如下:#include #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; }SqStack; void InitStack(SqStack *st) //初始化栈{ st->top=-1; } int StackEmpty(SqStack *st) //判断栈为空{ return (st->top==-1); } 精品文档。2欢迎下载void Push(SqStack *st,ElemType x) //元素进栈{ if(st->top==MaxSize-1) { printf("栈上溢出 !\n"); } else { st->top++; //移动栈顶位置st->data[st->top]=x; //元素进栈} } void Pop(SqStack *st,ElemType &e) //出栈{ if(st->top==-1) { printf("栈下溢出 \n"); } else { e=st->data[st->top]; //元素出栈st->top--; //移动栈顶位置} } int main() { SqStack L; SqStack *st=&L; ElemType e; int i; InitStack(st); for(i=1;i<10;++i) { Push(st,i); printf("入栈元素是: %d\n",i); } for(i=1;i<10;++i) { Pop(st,e); printf("出栈元素是: %d\n",e); } return 0; 精品文档。3欢迎下载}改写以上程序,实现功能如下:1)调用栈操作函数实现判别一个算术表达式中的圆括号配对是否正确。2)改写 Push和 Pop函数,使得以上两个函数可以一次性将一个数组入栈和出栈。(1)(2)精品文档。4欢迎下载2.C/C++的库函数中已经实现了栈,实例如下:#include //引入栈using namespace std; int main() { int a; stacks; scanf("%d",&a); s.push(a); //入栈printf("%d\n",s.top()); //取得栈顶元素输出s.pop(); //出栈return 0; } 请根据以上程序,设计算法如下:判别一个算术表达式中的圆括号和方括号配对是否正确。精品文档。5欢迎下载四、分析与讨论五、教师评语签名:日期:成绩附源程序清单:1. (1)#include #define MaxSize 100 精品文档。6欢迎下载#define SUCCESS 0 #define ERROR -1 typedef struct { int n...