008.栈应用括号匹配的检验C实例
来源:互联网 发布:库里生涯场均数据 编辑:程序博客网 时间:2024/04/28 09:44
#include <stdio.h>#include <stdlib.h>#define OK 1#define OVERFLOW -2#define ERROR -1#define TRUE 1#define FALSE 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int status;typedef char elemType;typedef struct{ elemType* base; elemType* top; int stacksize;}SqStack;status initStack(SqStack* S){ S->base=(elemType*)malloc(STACK_INIT_SIZE*sizeof(elemType)); if(!S->base) exit(OVERFLOW); S->top=S->base; S->stacksize=STACK_INIT_SIZE; return OK;}status push(SqStack* S,elemType e){ if(S->top-S->base >= S->stacksize) { S->base=(elemType*)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(elemType)); if(!S->base) exit(OVERFLOW); S->top=S->base+S->stacksize; S->stacksize+=STACKINCREMENT; } *S->top++=e; return OK;}status pop(SqStack* S,elemType* e){ if(S->base==S->top) return ERROR; *e=*--S->top; return OK;}status getTop(SqStack S,elemType* e){ if(S.base==S.top) return ERROR; *e=*(S.top-1);}status stackEmpty(SqStack S){ if(S.base==S.top) return TRUE; else return FALSE;}status printSqStack(SqStack S){ elemType* n; n=S.base; printf("now: "); while(n!=S.top) { printf("%c",*n++); } printf("\n"); return OK;}status matchBracket(){ char C; SqStack S; char e; initStack(&S); printf("input the first open bracket:\n"); scanf("%c",&C); if(C=='<' || C=='(' || C=='[' || C=='{') { push(&S,C); } else { printf("Wrong bracket, bye."); exit(ERROR); } while(!stackEmpty(S)) { fflush(stdin); printf("input bracket:\n"); scanf("%c",&C); if(C=='<' || C=='(' || C=='[' || C=='{') { push(&S,C); printSqStack(S); } else if(C=='>' || C==')' || C==']' || C=='}') { getTop(S,&e); if(C-e==2 || C-e==1) { pop(&S,&e); printf("match success: %c%c\n",e,C); printSqStack(S); } else printf("Wrong close bracket, try again.\n"); } else printf("Not bracket, try again.\n"); }}int main(){ matchBracket(); return 0;}
0 0
- 008.栈应用括号匹配的检验C实例
- 栈的应用--括号匹配的检验(C++)
- 栈的应用--括号匹配的检验
- 栈应用--括号匹配的检验
- 栈的应用之括号匹配检验
- 栈实例-括号匹配检验
- 栈-括号匹配的检验
- [栈]括号匹配的检验
- 数据结构题典021:栈的应用——括号匹配的检验(C++)
- 栈的应用——括号匹配的检验(C语言)
- 栈的应用实例--c程序括号的匹配
- 栈的应用举例——括号匹配的检验
- 栈的应用之括号匹配的检验
- 栈的应用实践——括号匹配的检验
- 栈的应用之括号匹配的检验
- 栈的应用之二----------括号匹配的检验
- C_栈的应用----括号匹配的检验
- 数据结构 P49 栈的应用举例-括号匹配的检验
- C/C++指针的作用
- USENET简介
- Java编程思想学习笔记(1)---对象导论
- 初识Android二之小试牛刀模仿实现qq登陆界面
- maprecuce系列(4)——reduce端join算法实现
- 008.栈应用括号匹配的检验C实例
- 最大正向匹配
- hihocoder #1037 : 数字三角形 【动态规划】
- 2017.3.18 NOIP训练赛赛后总结
- alsa音频驱动相关
- 170319 汇编-栈的机制和debug实验2
- 初识C语言--一个新的“挚友”
- jeesite快速开发平台(八)---工作流的应用实例
- 为什么文件名要小写?