zoukankan
html css js c++ java
括号匹配(栈实现)
#include <cstdio> #include <iostream> using namespace std; #define MAXSIZE 20 typedef struct { char *base; char *top; int stacksize; }SqStack; void InitStack(SqStack &S) { S.base = (char *)malloc( MAXSIZE * sizeof(char) ); if(S.base == NULL) exit(-2); S.top = S.base; S.stacksize = MAXSIZE; } void GetTop(SqStack S, char &e) { if(S.top == S.base) return; e = *(S.top - 1); } void Push(SqStack &S, char e) // 不考虑栈满 { *S.top++ = e; } void Pop(SqStack &S, char &e) { if(S.top == S.base) return; S.top--; e = *S.top; } bool Match(char c, SqStack &my_stack, bool &tag) { char e; Pop(my_stack, e); if ( c != e ) { tag = false; free(my_stack.base); return false; // match fail } return true; // match success } void Correct(char *expr, bool &tag) { tag = true; SqStack my_stack; InitStack (my_stack); for( int i = 0; expr[i] != '\0'; i++ ) { char c = expr[i]; switch(c) { case '{' : case '[' : case '(' : Push (my_stack, c); break; case '}' : if( Match('{', my_stack, tag) == false ) // match fail return; break; case ']' : if( Match('[', my_stack, tag) == false ) // match fail return; break; case ')' : if( Match('(', my_stack, tag) == false ) // match fail return; break; default : break; // 其它字符 } } if(my_stack.top != my_stack.base) // e.g.: "[r" tag = false; free(my_stack.base); } int main(void) { // freopen("cin.txt", "r", stdin); char my_expr[MAXSIZE]; while(cin >> my_expr) { bool tag = true; Correct( my_expr, tag); tag ? printf("匹配成功\n") : printf("匹配失败\n"); } return 0; }
(另见
http://blog.csdn.net/justme0/article/details/7424798
)
查看全文
相关阅读:
疑问:关于strcmp()以及此指针表现形式*(char * *)a
后置操作符
php学习笔记(一)
windows php环境配置
关于wifi破解那点事
C++使用大漠插件及截图
跨平台网络编程
reinterpret_cast, static_cast , dynamic_cast ,const_cast 的总结
初识按键精灵
python 程序打包-----py2exe
原文地址:https://www.cnblogs.com/jjtx/p/2533501.html
最新文章
SQL Server Profiler工具
在2015年 开发一个 Web App 必须了解的那些事
C#读写txt文件的两种方法介绍
视图中创建索引
与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
SQL Server数据库锁机制及类型
web2py--------------用web2py写 django的例子 --------开发环境
回答了个问题,9x9 乘法表生成器
杂谈
web2py相关-------------------------------(一)初遇
热门文章
关于编程
编程一则----随机选饭程序
随笔一写
总结 : 关键字“virtual” 的使用场合
关于const标识符的使用(包含他人经验以及个人总结)
一个链表问题
单向链表
关于一位数组以及二维数组数组名的地址特性
qsort()
C++运算符及优先级
Copyright © 2011-2022 走看看