数据结构C++版-栈
一、概念


二、应用实例
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");
数据结构C++版-栈的更多相关文章
- javascript数据结构与算法---栈
javascript数据结构与算法---栈 在上一遍博客介绍了下列表,列表是最简单的一种结构,但是如果要处理一些比较复杂的结构,列表显得太简陋了,所以我们需要某种和列表类似但是更复杂的数据结构---栈 ...
- JavaScript数据结构和算法----栈
前言 栈是一种遵循后进先出(LIFO)原则的有序集合,新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另外一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底.可以想象桌上的一叠书,或者厨房里的 ...
- 数据结构学习之栈求解n皇后问题
数据结构学习之栈求解n皇后问题 0x1 目的 深入掌握栈应用的算法和设计 0x2 内容 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后 ...
- Javascript数据结构与算法--栈的实现与用法
栈数据结构 栈是一种遵从后进先出(LIFO)原则的有序集合.新添加的或者待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 我们在生活中常能看到栈的 ...
- JavaScript数据结构与算法-栈练习
栈的实现 // 栈类 function Stack () { this.dataStore = []; this.top = 0; // 栈顶位置 相当于length,不是索引. this.push ...
- SDUT 2133 数据结构实验之栈三:后缀式求值
数据结构实验之栈三:后缀式求值 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 对于一个基于二元运算符的后缀表示式(基本操作数都是 ...
- SDUT OJ 1479 数据结构实验之栈:行编辑器
数据结构实验之栈:行编辑器 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 一个简单的行编辑程序的功能是:接受用户从终端输入的程 ...
- javascript数据结构与算法——栈
前言: 栈就是和列表类似的一种数据结构,不过栈的特点是'后人先出'.栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现. 1. 栈的介绍: 栈是一种特殊的列表,栈内的 ...
- SDUT-2088_数据结构实验之栈与队列十一:refresh的停车场
数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description refresh最近发 ...
随机推荐
- openFrameworks Download
{ https://openframeworks.cc/zh_cn//download/ } 0.10.1 是最新发布的版本. 这个版本是修改了一些BUG的小版本,与版本 0.10.1100%兼容而且 ...
- 基于Flink和规则引擎的实时风控解决方案
案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总 对一个互联网产品来说,典型的风控场景包括:注册风控.登陆风控.交易风控.活动风控等,而风控的最佳效果是防患于未然,所以事前事中和事后 ...
- renren-fast-vue-动态路由-添加路由-方式一(直接在原有结构上添加)
在原有文件夹夹下新建自己的组件 在 mock/modules/sys-menu.js 中引入 实现路由的添加
- App应用推广
Android应用推广渠道: 360手机助手: http://dev.360.cn/ 应用宝: http://open.qq.com/ 百度手机助手: http://shouji.baidu.com/ ...
- CodeForces-1249C2-Good Numbers (hard version) -巧妙进制/暴力
The only difference between easy and hard versions is the maximum value of n. You are given a positi ...
- 在vue中获取微信支付code及code被占用问题的解决?
这个地方坑比较多,查看网上并没有详细的文档,新手一般写到这里很痛苦.这里我只介绍一下我解决的方案,虽然它不是最好的,但是可行的方案: 总体分两步 1)跳到微信支付链接,它会自动拼接上code 2)获取 ...
- Pytest初体验
Pytest安装,导入相关依赖哭 Pip3 install –U pytest U表示升级 Pip3 install pytestsugar pip3 install pytest-rerunfail ...
- C语言指针变量的长度
#include <stdio.h> int main() { /********************************************* * * 指针的长度:不同机器可 ...
- mysql数据库 --表查询
今日内容: 一.单表查询 1.语法执行顺序 2.where约束条件 3.group by 4.having 5.distinct 6.order by 7.limit 8.正则 二.多表查询 1.表查 ...
- Linux 父进程发送信号杀死子进程
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <signal. ...