用栈来实现 括号匹配
来源:互联网 发布:烘焙箱怎么做饼干知乎 编辑:程序博客网 时间:2024/06/10 22:50
#include<stdio.h>#include<stdlib.h>#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef char SElemType;typedef struct{SElemType *base;SElemType *top;int stacksize;} SqStack;Status InitStack(SqStack *S){S->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));S->top=S->base;S->stacksize=STACK_INIT_SIZE;return OK;}Status StackEmpty(SqStack *S){if(S->top!=S->base) return ERROR;return OK;}Status Push(SqStack *S,SElemType e){if(S->top-S->base>=S->stacksize){S->base=(SElemType*)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(SElemType));if (!S->base)exit(OVERFLOW);S->top=S->base+S->stacksize;S->stacksize+=STACKINCREMENT;}*S->top++=e;return OK;}Status Pop(SqStack *S,SElemType*e){if(S->top==S->base) return ERROR;*e=*--S->top;return OK;}Status Bracket(SqStack *S,char *str){int i=0,flag1=0,flag2;SElemType e;while(str[i]!='\0'){switch(str[i]){case '(':Push(S,'(');break;case '[':Push(S,'[');break;case '{':Push(S,'{');break;case ')':{if(StackEmpty(S)){flag1=1;break;}Pop(S,&e);if(e!='(')flag1=1;break;}case ']':{if(StackEmpty(S)){flag1=1;break;}Pop(S,&e);if(e!='[')flag1=1;break;}case '}':{if(StackEmpty(S)){flag1=1;break;}Pop(S,&e);if(e!='{')flag1=1;break;}default:break;}if(flag1) break;i++;}flag2=StackEmpty(S);if(!flag1 && flag2) printf("It is ok!\n");else printf("It is error!\n");return OK;}int main(){char str[255];SqStack S;InitStack(&S);printf("enter a cross:");scanf("%s",str);Bracket(&S,str);printf("\n");}
0 0
- 用栈来实现 括号匹配
- 用栈来实现括号匹配问题
- STL实现括号匹配
- STL实现括号匹配
- 栈实现括号匹配
- 栈实现括号匹配
- 栈实现括号匹配
- 栈实现括号匹配
- java实现括号匹配
- Java实现括号匹配
- java实现括号匹配
- 括号匹配---栈实现
- 栈实现括号匹配
- 括号匹配Java实现
- 栈实现括号匹配
- 括号匹配,栈实现
- 栈实现括号匹配
- 括号匹配简易C++实现
- 机器学习总结_前言
- dalvik字节码问答
- 第八周 项目一(1)
- 计算机网络自顶向下方法之一一一第九章
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法
- 用栈来实现 括号匹配
- cf545ABCD
- am start命令启动Activity、broadcast发送广播
- Shiro权限认证
- 第三章ROS机器人操作系统常用的命令
- 数据库版本管理方案(V0.0.2)
- Java中的基础----面向对象的三大特性
- JavaScript之内置对象、字符串API
- hdoj1005