栈之括号匹配问题
来源:互联网 发布:学校网络舆情监控制度 编辑:程序博客网 时间:2024/03/29 09:53
栈(stack)是限制插入和删除只能在一个位置上进行的有序表,该位置是表的末端,即最后插入的元素的位置,叫做栈的顶(top)。栈的修改是按先进后出的原则进行的,因此,栈又叫LIFO(Last In First Out)表。
栈有三种基本操作:
- 进栈
- 在栈顶增加一个元素。
- 出栈
- 把栈顶元素删除。
- 取栈顶元素
- 在不删除的情况下得到栈顶元素的值。
另外很多实现可以完成一些其他的操作:
- 清空
- 清空一个栈。
- 求元素个数
- 判空
判断一个栈是否为空。
//--------------------------------------------------------
了解一下STL(C++ Standard Library)中的stack的操作:
#include <stack>stack<类型名> s;s.empty( ) // 栈空返回true, 否则返回falses.pop( ) //移除堆栈中最顶层元素s.push( ) //压栈s.size( ) //返回当前栈中的元素个数s.top( ) //引用栈顶元素
括号匹配问题
贴上自己渣渣的code:
#include <iostream>#include <stack>using namespace std;stack<char> s;int main(){char c, x;c=getchar();while(c!='\n'){if(c=='['||c=='('||c=='>') s.push(c); if(c==')'){ if(s.top()!='('){ cout<<"Don't match!"<<endl; break; } else s.pop(); } if(c==']'){ if(s.top()!='['){ cout<<"Don't match!"<<endl; break; } else s.pop(); } if(c=='}'){ if(s.top()!='{'){ cout<<"Don't match!"<<endl; break; } else s.pop(); } if(c=='>'){ if(s.top()!='<'){ cout<<"Don't match!"<<endl; break; } else s.pop(); } c=getchar(); } if( s.size()) cout<<"Don't match!"<<endl;else cout<<"It's match!"<<endl; return 0;}
- 栈之括号匹配问题
- 数据结构之栈之括号匹配问题
- c++栈之括号匹配问题
- [栈] 括号匹配问题
- 栈(括号匹配问题)
- 括号匹配问题(栈)
- 栈之括号匹配
- 栈之括号匹配
- 数据结构之括号匹配问题
- 括号匹配问题--栈实现
- 栈应用:括号匹配问题
- 数据结构之栈的应用:括号匹配问题
- c语言栈的应用之括号匹配问题
- 栈学习之括号匹配
- 标准栈之括号匹配
- 栈运用之括号匹配
- 栈应用之括号匹配
- 栈应用之括号匹配
- 各种不一样的求职简历
- 作为Ubuntu新手,记录下自己的傻逼历程
- MOSS工作流 InfoPath+WorkFlow+Moss 开发要点
- InfoPath + Workflow + MOSS
- Java中的值传递和引用传递
- 栈之括号匹配问题
- String,StringBuffer与StringBuilder的区别
- Liferay on Private Site to get Public Site Page URL
- Java 学习个人笔记(二)(March 19,2013 )
- JSP页面显示乱码解决方案
- C#Partial Classes
- winform控件验证技术
- 图像处理就业(转)-----本人研究生正攻读本方向,不得不看看
- collision detect--SDL lib