一、概念

二、应用实例

1.进制转换

#include <stdlib.h>
#include <iostream>
#include <string> #include "MyStack.h"
#include "Coordinate.h"
using namespace std; #define BINARY 2
#define OCTONARY 8
#define HEXADECIMAL 16 void main ( )
{
//MyStack<int> s(30);
MyStack<char> s(); char num[]="0123456789ABCDEF"; int N=;
int mod=;
while (N!=)
{
mod=N%;
s.push(num[mod]);
N=N/;
} s.stackTraverse(false); /*
int elem=0; for (int i=s.stackLength()-1;i>=0;i--)
{
s.pop(elem);
cout<<num[elem];
}*/ /*while(!s.stackEmpty())
{
s.pop(elem);
cout<<num[elem];
}*/ system("pause"); }

2.括号匹配

MyStack<char> s();   //存放未匹配的括号
MyStack<char> s1(); //存放栈顶括号的另一半 char str[] = "([])["; //存放待匹配文本目标,要求无空格 e.g. [()()] ([]([]))
char current=; //当前括号需要匹配的另一半 for (int i=;i<strlen(str);i++)
{
if (current!=str[i])
{
s.push(str[i]);
switch(str[i])
{
case '[': //case 后面数据类型是int,单个字符会转换成其ASC码 if (current!=)
{
s1.push(current);
}
current=']';
break; case '(': if (current!=)
{
s1.push(current);
}
current=')';
break; default:
cout<<"括号不匹配."<<endl; //default后面语句可以注释掉,因为current不等于str[i]时str[i]就会入栈,第一个栈不为零匹配就会失败 } }
else
{
char elem;
s.pop(elem); if(!s1.pop(current))
{
current=;
}
}
} if (s.stackEmpty())
{
cout<<"括号匹配"<<endl;
}
else
{
cout<<"括号不匹配"<<endl;
} system("pause");

最新文章

  1. 检查PHP文件中是否含有bom的PHP函数
  2. 多线程完成socket
  3. 开启win7系统关闭日志分析
  4. linux服务器apache 一个IP,一个端口,建立多个网站的方法。
  5. iOS仿京东分类菜单实例实现
  6. AOJ - 2224 Save your cat(最小生成树)
  7. Android 内存溢出管理与测试
  8. .NET基础拾遗(3)字符串、集合和流3
  9. 先学习Oracle 11g的Automatic Diagnostic Repository新功能
  10. 一步一步学MySQL-一致性非锁定读和锁定读
  11. java中servletContextListener、httpSessionListener和servletRequestListener使用整理
  12. 关于linux上文件无法正确显示中文的情况解决
  13. MySQL 获得当前日期时间 函数【转】
  14. 学习笔记24—win10环境下python版libsvm的安装
  15. mongodb-参考其他
  16. yum安装jdk如何配置JAVA_HOME
  17. Winform下判断文件和文件夹是否存在
  18. Build step &#39;Execute Windows batch command&#39; marked build as failure
  19. linux:用户及文件权限管理
  20. 用input标签 文件,多文件上传

热门文章

  1. Robot Framework:接口测试
  2. 多图上传控制器及模型代码(2)thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。
  3. Java-框架-Dubbo:Dubbo
  4. CSS template
  5. JS互相调用
  6. SSM框架整合思路
  7. AI应用在金融领域,如何能够在商业上有所突破
  8. Hyperledger:名词解释
  9. Spark中的多线程并发处理
  10. 随时更新web html 项目页面,查看手机等其他移动设备的几种方法?