【问题描述】
利用栈解决括号匹配问题。
【基本要求】
- 采用链式存储实现栈的初始化、入栈、出栈操作。
- 给定一个括号序列,里面包括圆括号、方括号和花括号,编程检验该括号序列中括号是否配对。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef struct linknode{
char data;
struct linknode *next;
}LinkSNode;
void InsitStack(LinkSNode *&s) //初始化栈
{
s=(LinkSNode *)malloc(sizeof(LinkSNode));
s->next=NULL;
}
void DestoryStack(LinkSNode *&s) //销毁栈
{
LinkSNode *pre=s,*p=s->next;
while(p!=NULL)
{
free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
bool StackEmpty(LinkSNode *&s) //空栈判断
{
return s->next==NULL;
}
void Push(LinkSNode *&s,char e) //进栈
{
LinkSNode *p;
p=(LinkSNode *)malloc(sizeof(LinkSNode));
p->data=e;
p->next=s->next;
s->next=p;
}