C++语言判断括号的搭配
1.运行程序,输入参数,结果如下。
输入()()(,判断为左右括号不匹配。
输入()())(,判断为左右括号匹配。
2.部分源代码
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define ERROR 0
typedef int SElemType ;
typedef struct SqStack //构造栈
{ SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
int InitStack(SqStack &S) //初始化栈
{
S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base)
{ cout<<"OVERFLOW!"<<endl;
return (ERROR);
}
S.top =S.base ;
S.stacksize =STACK_INIT_SIZE;
cout<<"成功构造一个空栈!"<<endl;
return (OK);
}
int Push(SqStack &S,SElemType e) //压栈函数
{
******
}
int Pop(SqStack &S,SElemType &e) //弹栈函数
{ //判断栈是否为空
******
}
SElemType GetTop(SqStack S) //获取栈顶元素函数
{
if(S.top==S.base)
{cout<<"出现错误!栈空!"<<endl;
exit(0);
}
else
return (*(S.top-1));
}
int Check() //检验函数
{
******
}
int main() //主函数
{
cout<<"=========括号匹配问题========="<<endl;
Check();
_getch();
}