文档介绍:数据结构课程设计报告设计题目:括号匹配院系计算机学院年级11级学生刘云飞学号E01114295指导教师王爱平起止时间9-7/9-;;;,提交实验报告;,实验过程中填写完整。;:实验之前预****占20%,实验报告书写情况占50%,运行情况30%。概要设计栈的ADT表示ADTStack{数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,…,n} 约定an为栈顶端,a1为栈底端基本操作:StatusInitStack(&s)操作结果:构造一个空栈s。StatusPush(&s,e)初始条件:栈s已经存在。操作结果:插入元素e为新的栈顶元素。StatusPop(&s,&e)初始条件:栈s已经存在,并不为空。操作结果:删除s的栈顶元素,并用e返回其值。StatusCheck(&s,e)初始条件:栈s已经存在,并不为空。操作结果:判断括号是否匹配。StatusEnterString(&s)}ADTStack数据类型定义和核心算法和程序数据类型定义:typedefintStatus;typedefcharSElemType;typedefstruct{//栈的顺序存储表示 SElemType*base; SElemType*top; intstacksize;}SqStack;intx=0;SElemTypea;SElemTypee;核心算法:程序:#include<>#include<>#include<>#URE1#defineFALSE0#defineERROR0#defineOK1#defineINFEASIBLE-1#defineOVERFLOW-2#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefintStatus;typedefcharSElemType;typedefstruct{//栈的顺序存储表示 SElemType*base; SElemType*top; intstacksize;}SqStack;intx=0;StatusInitStack(SqStack&s){//构造一个空栈S =(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!)exit(OVERFLOW);//内存分配失败 =; =STACK_INIT_SIZE; returnOK;}StatusPush(SqStack&s,SElemTypee){ //插入元素e为新的栈顶元素 if(->=){ //栈满追加存储空间。 =(SElemType*)realloc(