kuohao.cpp
来自「数据结构中顺序栈的表示与实现」· C++ 代码 · 共 49 行
CPP
49 行
//括号匹配的检验,(限于()、[])
typedef char SElemType;
#include"c1.h"
#include"c3-1.h"
#include"bo3-1.cpp"
main()
{
// 对于输入的任意一个字符串,检验括号是否配对
SqStack s;
SElemType ch[80],*p,e;
InitStack(s);
cout<<"请输入表达式:";
gets(ch);
p=ch;
while(*p) // 没到串尾
switch(*p)
{
case '(':
case '[':Push(s,*p++);
break; // 左括号入栈,且p++
case ')':
case ']':if(!StackEmpty(s)) // 栈不空
{
Pop(s,e); // 弹出栈顶元素
if(*p==')'&&e!='('||*p==']'&&e!='[') // 弹出的栈顶元素与*p不配对
{
cout<<"左右括号不配对"<<endl;
exit(ERROR);
}
else
{
p++;
break; // 配对,跳出switch语句,继续处理
}
}
else // 栈空
{
cout<<"缺乏左括号"<<endl;
exit(ERROR);
}
default: p++; // 其它字符不处理,指针向后移
}
if(StackEmpty(s)) // 字符串结束时栈空
cout<<"括号匹配"<<endl;
else
cout<<"缺乏右括号"<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?