C语言数据结构-桟——括号的匹配检验
来源:互联网 发布:mac office 编辑:程序博客网 时间:2024/05/29 08:30
#include<stdlib.h> #include<stdio.h> #include<string.h> #define INIT_STACK_SIZE 20 #define STACK_INCRE_SIZE 10 typedef struct { char *base; char *top; int stackSize; }sqStack; void initStack(sqStack *s){ s->base=(char *)malloc(sizeof(char)*INIT_STACK_SIZE); s->top=s->base; s->stackSize=INIT_STACK_SIZE; } void push(sqStack *s,char e){ if(s->top-s->base>INIT_STACK_SIZE){ s->base=(char *)realloc(s->base,sizeof(char)*(s->stackSize+STACK_INCRE_SIZE)); } *(s->top)=e; (s->top)++; } void pop(sqStack *s,char *e){ *e=*--(s->top); } char getTop(sqStack *s){ return *(s->top-1); } int stackLen(sqStack *s){ return (s->top-s->base); } int main(){ char str[20]; int i; char e; sqStack s; initStack(&s); scanf("%s",str); for(i=0;i<strlen(str);i++){ if(str[i]=='('||str[i]=='{'||str[i]=='['){ push(&s,str[i]); }else if(str[i]==')'||str[i]=='}'||str[i]==']'){ if(stackLen(&s)==0){ printf("matcher error!\n"); return 0; }else{ if(str[i]==')'&&getTop(&s)=='('){ pop(&s,&e); }else if(str[i]==']'&&getTop(&s)=='['){ pop(&s,&e); }else if(str[i]=='}'&&getTop(&s)=='{'){ pop(&s,&e); }else{ printf("matcher error!\n"); return 0; } } } } if(stackLen(&s)==0){ printf("matcher success!\n"); } return 0; }
1 0
- C语言数据结构-桟——括号的匹配检验
- 数据结构题典021:栈的应用——括号匹配的检验(C++)
- 数据结构(C语言版)page49 3.22括号匹配的检验——用栈来实现
- 栈的应用——括号匹配的检验(C语言)
- 数据结构--括号匹配检验
- 括号的匹配(c语言数据结构)
- 数据结构应用-----------括号匹配的检验
- 数据结构(C语言)---括号匹配
- 括号匹配检验 数据结构运用
- 数据结构-C语言 栈的简单应用——括号匹配
- 括号匹配的检验
- 括号的匹配检验
- 括号匹配的检验
- 括号匹配的检验
- 括号匹配的检验
- 括号匹配的检验
- 括号匹配的检验
- 括号匹配的检验
- 关于android通过servlet访问MySql数据库的问题(附带简单的JSON使用)
- 表的某个字段按,隔开使用sql拆成相应的行
- 哪些因素影响ABBYY FineReader 12的识别质量
- ubuntu下 sublime-text 支持中文输入
- JUnit单元测试
- C语言数据结构-桟——括号的匹配检验
- 【学习笔记05】java面向对象-this、static
- Linux 内存布局测试
- 多线程
- jquery判断元素是否显示
- String中intern的方法
- php缓存优化,php配置opchche
- jstree的基本应用----记录
- spark/hadoop/hive/alluxio/sqoop/zookeeper 安装文档