08_栈的实例1---括号匹配
来源:互联网 发布:有没有正规的网络兼职 编辑:程序博客网 时间:2024/06/04 00:28
在前面的栈上实现括号匹配问题。
#include "linkStack.h"static int dio = 0;/*解决‘’的匹配*/static int shuang = 0;/*解决“”的匹配*/bool isLeft( const char left ) { bool flag = false; switch (left) { case '<': case '{': case '[': case '(': flag = true; break; case '\'': ++dio; flag = true; break; case '\"': ++shuang; flag = true; break; default: flag = false; break; } return flag;}bool isRight(const char right) { bool flag = false; switch ( right ) { case '>': case '}': case ']': case ')': flag = true ; break; case '\'': ++dio; flag = true; break; case '\"': ++shuang; flag = true; break; default : flag = false; break; } return flag;}bool match( const char left , const char right ) { bool flag = false; switch ( left ) { case '<': flag = (right=='>'); break; case '[': flag = (right==']'); break; case '(': flag = (right==')'); break; case '{': flag = (right=='}'); break; case '\'': flag = (right=='\''); break; case '\"': flag = (right=='\"'); break; default : flag = false; break; } return flag;}int scanner( const char *code ) { linkStack chen; LinkStack *stack = chen.LinkStack_Create(); int ret = 0 ; char *pos = const_cast<char*>(code); while ( *pos!='\0' ) { if( isLeft(*pos) ){ chen.LinkStack_Push(stack,pos); } if ( isRight(*pos) ) { char *left = (char*)chen.LinkStack_Pop(stack); if ( !match(*left,*pos) ) { break; } } ++pos; } if ( (chen.LinkStack_Size(stack)==0 )&&(*pos=='\0')&&( dio%4==0)&&(shuang%4==0) ) { cout << "succeed!" << endl; ret = 1; }else { cout << "fail!" << endl; ret = 0; } chen.LinkStack_Destroy(stack); return ret;}int main(int argc, char **argv) { const char* code = "#include <stdio.h> int main() { int a[5][5]; int (*p)[4]; p = a[0]; printf(\"%d\\n\", &p[3][3] - &a[3][3]); return 0; }"; scanner(code); system( "pause" ); return 0;}
阅读全文
0 0
- 08_栈的实例1---括号匹配
- 栈实例-括号匹配
- 栈实例-括号匹配检验
- 数据结构(严蔚敏)顺序栈_括号匹配的检验
- 栈的应用实例--c程序括号的匹配
- 栈的应用实例之——括号匹配
- 008.栈应用括号匹配的检验C实例
- 【数据结构_栈_Stack_0962】括号匹配问题
- 数据结构_括号匹配
- C实例---括号匹配(栈实现)
- 表达式括号匹配_洛谷1739_栈
- 栈-括号匹配的检验
- 栈的实现-括号匹配
- 栈的应用:括号匹配
- 括号匹配---栈的应用
- [栈]括号匹配的检验
- 栈的应用---括号匹配
- 栈的应用---括号匹配
- WIN10电脑,安装双系统(CentOS 6.4) 各种出错
- 项目调错笔记
- 06_栈的顺序存储
- 07_栈的链式存储
- RTP协议解析
- 08_栈的实例1---括号匹配
- 09_栈的实例2---算术表达式(四则运算)
- Github全面详解-20什么是开源
- Mina用户手册
- 10_栈的递归实例1---斐波那契尔序列
- pbb找实习之厦门美团
- 11_栈的递归实例2---strlen实现
- ExpandableListView网络加载数据
- 12_栈的递归实例3---汉诺塔