数据结构实验之栈与队列四:括号匹配
来源:互联网 发布:办公软件站长网站 编辑:程序博客网 时间:2024/06/07 08:25
#include <iostream>#include <stdio.h>#include <malloc.h>#define maxsize 50+5using namespace std;bool flag;typedef struct Node{ int Top; int Stacksize; char A[maxsize];}*Stack;void MakeEmpty(Stack S){ S->Top = -1;}Stack CreatStack(){ Stack S; S = (Stack)malloc(sizeof(struct Node)); if(S == NULL) exit(-1); S->Stacksize = maxsize; MakeEmpty(S); return S;}int IsEmpty(Stack S){ return S->Top == -1;}int IsFull(Stack S){ return S->Top >= S->Stacksize;}void Push(char X, Stack S){ if(IsFull(S)) exit(-1); else S->A[++S->Top] = X;}void Pop(Stack S){ if(!IsEmpty(S)) S->Top--; else exit(-1);}char Top(Stack S){ return S->A[S->Top];}void Del(Stack S){ S->Top = -1;}void Match(Stack S, char A[]){ for(int i=0; A[i] != '\0'; i++) { if(A[i] == '(' || A[i] == '[' || A[i] == '{') { flag = true; Push(A[i], S); } else if(A[i] == ')') { if(IsEmpty(S)) { flag = false; break; } char a = Top(S); if(a == '(') { Pop(S); flag = true; } else { flag = false; break; } } else if(A[i] == ']') { if(IsEmpty(S)) { flag = false; break; } char a = Top(S); if(a == '[') { Pop(S); flag = true; } else { flag = false; break; } } else if(A[i] == '}') { if(IsEmpty(S)) { flag = false; break; } char a = Top(S); if(a == '{') { Pop(S); flag = true; } else { flag = false; break; } } } if(!IsEmpty(S)) flag = false;}int main(){ char A[maxsize]; while(gets(A)) { flag = false; Stack S; S = CreatStack(); Match(S, A); if(flag) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134-数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- sdut 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配 sdut-oj
- SDUT 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 翻转数组,来自赛码网,初级算法
- 获取web项目路径工具类
- 创建路由的几个步骤
- 代码管理器SVN的安装及使用
- linux常用命令
- 数据结构实验之栈与队列四:括号匹配
- NOIP2000提高组 单词接龙
- WGS84、GCJ02、BD09地图坐标系间的坐标转换及坐标距离计算
- Orcal数据库 表修改
- 微信小程序常见爬坑
- 用SQL进行多值列拆分成二值列的一个实现
- 10分钟适配 iOS 11 & iPhone X
- 第二课JavaScript函数传参
- Springframework下所有jar包作用简介