数据结构-栈的应用(进制转换,括号匹配)
2017-10-14 08:36
567 查看
进制转换目标效果:
进制转换功能代码:
括号匹配目标效果:
括号匹配功能代码:
源码链接:点击打开链接
注意:
1.这里没有贴具体对栈操作的代码,是因为代码和上一篇博文栈操作的代码一样。
2.加一个小插曲,这里的括号匹配是英文括号匹配,中文括号会有乱码等问题,别问我怎么知道的,一脸懵逼.jpg。
3.源码中两个功能一起运行的,所以括号匹配输入字符串使用了scanf,使用gets会出现问题(上边进制转换带来的问题),但是如果单独作为一个功能时,gets也能正确运行。
进制转换功能代码:
//数制转换程序 void Conversion() { // TODO (#1#): 这里实现数制转换程序 printf("请输入十进制数:"); scanf("%d",&n); while(n) { Push(s,n%8); n/=8; } printf("\n该十进制对应的八进制数为:"); while(!StackEmpty(s)) { Pop(s,x); printf("%d",x); } printf("\n"); }
括号匹配目标效果:
括号匹配功能代码:
//检验括号匹配 void Match() { // TODO (#1#): 这里实现检验括号匹配的程序 printf("\n\n请输入括号表达式:"); char c_array[20]; int i=0; scanf("%s",c_array); int l=strlen(c_array); //求字符数组长度 while(i<l&&i>=0) { switch(c_array[i]) { case '{': case '[': case '(': Push(s,c_array[i]); //左括号入栈 break; case '}': Pop(s,x); if(x!='{') { printf("\n匹配失败"); i=-2; } break; case ']': Pop(s,x); if(x!='[') { printf("\n匹配失败"); i=-2; } break; case ')': Pop(s,x); if(x!='(') { printf("\n匹配失败"); i=-2; } break; } i++; } if(i>0) printf("\n匹配成功"); }
源码链接:点击打开链接
注意:
1.这里没有贴具体对栈操作的代码,是因为代码和上一篇博文栈操作的代码一样。
2.加一个小插曲,这里的括号匹配是英文括号匹配,中文括号会有乱码等问题,别问我怎么知道的,一脸懵逼.jpg。
3.源码中两个功能一起运行的,所以括号匹配输入字符串使用了scanf,使用gets会出现问题(上边进制转换带来的问题),但是如果单独作为一个功能时,gets也能正确运行。
相关文章推荐
- 栈的应用----括号匹配、逆波兰表达式【数据结构】
- 数据结构笔记之——括号匹配(栈的应用之一)(SDOJ 2134)
- 重温数据结构-栈的应用:进制转换,括号匹配检测,行编辑,迷宫求解,求表达式的值
- 【学习点滴-数据结构-栈&队列】 栈的应用之二:括号匹配的检测
- 【数据结构】栈的应用--括号的匹配(c++)
- 数据结构题典021:栈的应用——括号匹配的检验(C++)
- 堆栈数据结构应用之括号匹配检查(算法3.2.2)
- 数据结构-栈的应用-算术表达式小括号匹配
- 数据结构复习_栈和队列,应用_括号匹配&文件目录递归拷贝,
- 数据结构 栈的应用 括号匹配
- 【数据结构】栈的应用 括号匹配
- 【数据结构】栈的应用——检测括号是否匹配
- 数据结构-C语言 栈的简单应用——括号匹配
- PHP数据结构之六 PHP栈的应用举例【数制转换和括号匹配算法】
- 数据结构与算法 -- 栈的应用(进制转换、括号匹配)
- 数据结构的应用——使用栈实现字符串括号匹配检查
- 数据结构 栈应用(括号匹配检测)
- imooc数据结构探险-栈篇 栈应用括号匹配二 由群友启发改良james_yuan老师算法
- 数据结构(8)--栈的应用之行编辑程序、括号匹配检验、数制转换、hanio塔问题
- 数据结构应用-----------括号匹配的检验