数据结构实验之栈与队列四:括号匹配 sdut-oj
来源:互联网 发布:国际版淘宝怎么样 编辑:程序博客网 时间:2024/06/01 10:24
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct{
char *base;
char *top;
int stacksize;
}sqStack;
void initStack(sqStack *s)
{
s->base = (char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!s->base) exit(0);
s->top = s->base;
s->stacksize = STACK_INIT_SIZE;
}
void Push(sqStack *s,char e)
{
if(s->top - s->base >= s->stacksize)
{
s->base = (char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char));
if(!s->base) exit(0);
s->top = s->base + s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*(s->top) = e;
s->top++;
}
void Pop(sqStack *s)
{
if(s->top==s->base) return;
s->top--;
}
void checkStack(sqStack *s,char a[])
{
int i,flag=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='{'||a[i]=='['||a[i]=='(')
{
Push(s,a[i]);
flag=1;
}
else if(a[i]=='}')
{
if(*(s->top-1)=='{')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
else if(a[i]==']')
{
if(*(s->top-1)=='[')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
else if(a[i]==')')
{
if(*(s->top-1)=='(')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
}
if(s->top!=s->base)
flag=0;
if(flag==1) printf("yes\n");
else printf("no\n");
}
int main()
{
sqStack s;
char a[51];
while(gets(a))
{
initStack(&s);//!!!
checkStack(&s,a);
}
return 0;
}
#include <stdlib.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct{
char *base;
char *top;
int stacksize;
}sqStack;
void initStack(sqStack *s)
{
s->base = (char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!s->base) exit(0);
s->top = s->base;
s->stacksize = STACK_INIT_SIZE;
}
void Push(sqStack *s,char e)
{
if(s->top - s->base >= s->stacksize)
{
s->base = (char*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(char));
if(!s->base) exit(0);
s->top = s->base + s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*(s->top) = e;
s->top++;
}
void Pop(sqStack *s)
{
if(s->top==s->base) return;
s->top--;
}
void checkStack(sqStack *s,char a[])
{
int i,flag=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='{'||a[i]=='['||a[i]=='(')
{
Push(s,a[i]);
flag=1;
}
else if(a[i]=='}')
{
if(*(s->top-1)=='{')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
else if(a[i]==']')
{
if(*(s->top-1)=='[')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
else if(a[i]==')')
{
if(*(s->top-1)=='(')
{
Pop(s);
flag=1;
}
else
{
flag=0;
break;
}
}
}
if(s->top!=s->base)
flag=0;
if(flag==1) printf("yes\n");
else printf("no\n");
}
int main()
{
sqStack s;
char a[51];
while(gets(a))
{
initStack(&s);//!!!
checkStack(&s,a);
}
return 0;
}
阅读全文
0 0
- 数据结构实验之栈与队列四:括号匹配 sdut-oj
- SDUT OJ 数据结构实验之栈四:括号匹配
- SDUT OJ 数据结构实验之栈四:括号匹配
- sdut 2134 数据结构实验之栈与队列四:括号匹配
- SDUT 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134-数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- POJ 1716 Integer Intervals 差分约束
- Oracle的导出导入
- hanoi问题
- 【NOJ】[1001] 纸牌游戏
- HDU 1869 六度分离
- 数据结构实验之栈与队列四:括号匹配 sdut-oj
- ACM动态规划总结 dp
- xnstool 一条curl 获取ip地址和dns配置
- [暴力]#514. 「LibreOJ β Round #2」模拟只会猜题意
- DOM常用方法之 插入,删除,添加等。
- 进制转换
- Restful Api写法心得之二《参数接收篇》
- java建立顺序表及增删改查功能实现
- 序列化二叉树