原题:设计一个算法判别用字符串表示的表达式中开、闭括号是否配对出现。
#include<iostream.h>
#include<stdlib.h>
#define INIT_SIZE 100 //存储空间初始分配量
#define INCREMENT 10 //存储空间分配增量
#define ElemType char
#define SIZE 100 //字符串数组的大小
typedef struct
{
ElemType *base;//在栈构造之前和销毁之后,base值为NULL
ElemType *top;//栈顶指针
int stacksize;//当前已分配的存储空间,以元素为单位
}SqStack;
int InitStack(SqStack &S)
{//构造一个空栈
S.base=new ElemType[INIT_SIZE];
if(S.base == NULL)
{//溢出
cout<<"存储空间分配失败!"<<endl;return -1;
}
S.top=S.base;//S.top=S.base表示为空栈
S.stacksize=INIT_SIZE;//为栈容量赋初值
return 1;
}
int Pop(SqStack &S,char &ch)
{//如栈非空,则删除栈顶元素
if(S.base == S.top)
{//栈空条件下执行
cout<<"当前栈已空!"&