2024年5月27日发(作者:)
括号匹配问题就是给定任意判别式,然后检验括号的配对出现的情况。
可见输入的表达式有四种可能性:右括号配对次序不正确、右括号多于左括
号、左括号多于右括号、左右括号匹配正确。可以先检测表达式中的字符,若是
左括号就入栈,如果是右括号就出栈一个元素与其配对,配对成功则继续访问下
一个字符,否则退出。出现非括号字符则跳过。程序流程图如下:
输入一个表达式
检测字符并压入( [ {
当遇) ] }出栈
判断括号是否匹配并输出结果
程序代码如下:
#include
#include
#include
#include
#define MaxSize 50
using namespace std;
/*------------主要的数据结构类型 --------------*/
struct Text
{
int top;
char Szstack[MaxSize];
};
/*-------------程序功能模块函数-------------*/
//检验栈是否为空
bool IsEmpty(Text G)
{
if(==-1)
return true;
else
return false;
}
//检验栈是否为满
bool IsFull(Text G)
{
if(==MaxSize-1)
return true;
else
return false;
}
//弹出栈顶元素
char Pop(Text G)
{
char n=k[];
return n;
}
//检验括号是否配对
int Check(char *A)
{
int i;
Text G;
=-1;
int L=strlen(A);
发布评论