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);