📄 括号配对.cpp
字号:
#include<iostream>
#include<cstring>
#include "assert.h"
#define NULL 0
using namespace std;
class stack
{
public:
char *elmlist;
char top;
char msize;
stack(int sz=20)
{
msize=sz;
elmlist=new char[msize];
assert(elmlist!=NULL);
top=-1;
}
~stack()
{delete []elmlist;}
void push(char i);
char pop();
char gettop();
void makeempty();
int isfull(){return top==msize;}
int isempty(){return top==-1;}
};
void stack::push(char i)
{
assert(!isfull());
top++;
elmlist[top]=i;
}
char stack::pop()
{
assert(!isempty());
return elmlist[top--];
}
char stack::gettop()
{
assert(!isempty());
return elmlist[top];
}
void stack::makeempty()
{
top=-1;
}
void match(char *s)
{
stack a(10);
int i=0;
char k=s[i];
while(k!='\0')
{ k=s[i];
if(k=='(')
{
a.push(k);i++;
}
else if(k== ')')
{
if(!a.isempty())
{
a.pop();
i++;
}
else
{
cout<<"括号配对错误!"<<endl;
exit(0);
}
}
else i++;
}
if(a.isempty())
cout<<"括号配对成功!"<<endl;
else
cout<<"括号配对错误!"<<endl;
}
void main()
{
char s[20];//={"5+8*(1-2)/3\0"};
cout<<"请输入一个式子:";
cin.getline(s,20);
match(s);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -