简单的用栈来实现平衡符号的程序
来源:互联网 发布:贾雷德·戴蒙德 知乎 编辑:程序博客网 时间:2024/06/11 18:36
简单的实现检验是否每件事情都能成对出现的一个程序,于是每一个右花括号、右方括号和右圆括号必然对应相应的左括号,系列“【()】”是合法的,“【(】)”是错误的。我们仅对右圆括号、方括号和花括号进行检验并忽略出现的任何字符,这个简单的算法如下:
做一个空栈。读入字符直到文件尾,如果一个字符是一个开放符号,则将其推入栈中,如果字符是一个封闭符号,则当栈空时报错。否则,将栈元素弹出,如果弹出的符号不是对应的开放符号,则报错,在文件尾,如果栈非空则报错。
程序如下:
#include "BT_Stack.h"#include <string.h>int main(){char s[100];BT_Stack<char> stack;printf("Please input the string: \n");scanf("%s", s);int len = strlen(s);bool isTrue = true;for(int i = 0; i < len; i++){switch(s[i]){case '(':case '[':case '{':stack.push(s[i]);break;case ')':{char top = stack.getTop();if(top == 0 || top != '(')isTrue = false;elsestack.pop();}break;case ']':{char top = stack.getTop();if(top == 0 || top != '[')isTrue = false;elsestack.pop();}break;case '}':{char top = stack.getTop();if(top == 0 || top != '{')isTrue = false;elsestack.pop();}break;default:break;}if(isTrue == false)break;}if(!stack.empty())isTrue = false;if(isTrue)printf("this string is right! \n");elseprintf("this is string is false \n");system("pause");return 0;}
- 简单的用栈来实现平衡符号的程序
- 堆栈的应用(1) 平衡符号 C++实现
- 堆栈的应用(1) 平衡符号 C++实现
- 堆栈的应用--用C语言实现平衡符号
- 栈的应用---平衡符号
- 栈的应用--平衡符号
- 栈的应用---平衡符号
- 栈的应用----平衡符号
- 平衡搜索树-AVLTree的简单实现
- 栈的应用---平衡符号的检测
- 栈的应用之平衡符号
- 基于栈的平衡符号匹配问题
- 栈的应用-平衡符号(C版)
- 栈的应用——平衡符号
- 栈的应用:平衡符号问题
- 栈的应用 — 平衡符号
- javascript栈的应用之符号平衡
- 栈的应用 - 符号平衡问题
- ActiveMQ的java操作
- android 反编 apk
- H264--1--编码原理以及I帧B帧P帧、pts&dts
- pos机上的串口配置
- 动态创建相对布局和 其他控件 ,添加布局属性和相对的对齐属性
- 简单的用栈来实现平衡符号的程序
- Linux下如何释放内存 命令
- android 定制
- android移植
- Android Activity和Intent机制学习笔记
- 几种任务调度的 Java 实现方法与比较
- 树型控件的处理(完整版)
- 编解码基本概念
- 创建SYSTEM用户权限的进程