一、概念

二、应用实例

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++版-栈的更多相关文章

  1. javascript数据结构与算法---栈

    javascript数据结构与算法---栈 在上一遍博客介绍了下列表,列表是最简单的一种结构,但是如果要处理一些比较复杂的结构,列表显得太简陋了,所以我们需要某种和列表类似但是更复杂的数据结构---栈 ...

  2. JavaScript数据结构和算法----栈

    前言 栈是一种遵循后进先出(LIFO)原则的有序集合,新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另外一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底.可以想象桌上的一叠书,或者厨房里的 ...

  3. 数据结构学习之栈求解n皇后问题

    数据结构学习之栈求解n皇后问题 0x1 目的 ​ 深入掌握栈应用的算法和设计 0x2 内容 ​ 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后 ...

  4. Javascript数据结构与算法--栈的实现与用法

    栈数据结构 栈是一种遵从后进先出(LIFO)原则的有序集合.新添加的或者待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 我们在生活中常能看到栈的 ...

  5. JavaScript数据结构与算法-栈练习

    栈的实现 // 栈类 function Stack () { this.dataStore = []; this.top = 0; // 栈顶位置 相当于length,不是索引. this.push ...

  6. SDUT 2133 数据结构实验之栈三:后缀式求值

    数据结构实验之栈三:后缀式求值 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 对于一个基于二元运算符的后缀表示式(基本操作数都是 ...

  7. SDUT OJ 1479 数据结构实验之栈:行编辑器

    数据结构实验之栈:行编辑器 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  一个简单的行编辑程序的功能是:接受用户从终端输入的程 ...

  8. javascript数据结构与算法——栈

    前言: 栈就是和列表类似的一种数据结构,不过栈的特点是'后人先出'.栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现. 1. 栈的介绍: 栈是一种特殊的列表,栈内的 ...

  9. SDUT-2088_数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description refresh最近发 ...

随机推荐

  1. Vue学习笔记【2】——Vue指令之 - v-cloak、v-text和v-html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. go结构体上的函数

    go结构体上的函数 我们可以将一个方法和一个结构体关联: type Saiyan struct { Name string Power int } func (s *Saiyan) Super() { ...

  3. Flex布局(二)

    接上一篇,说一下flex布局的实例,转自阮一峰老师的博客

  4. Luogu P2269 [HNOI2002]高质量的数据传输

    这题给大家提供一下思路~ (为不想贴代码找借口) 声明:两个思路都是正确的,并且都AC了.(逃) 总体布局 求传输失败率\(1-\prod(1-p_{i})\)最小就是求 传输成功率\(\prod(1 ...

  5. NX二次开发-NXOpenC++ Example

    NxOpenC++ Example NXOpen::WCS wcs坐标系 https://www.cnblogs.com/nxopen2018/p/11368763.html NXOpen::Draw ...

  6. 使用gulp管理sass文件

    前提是npm和ruby已经安装好 1. 新建文件夹myproject,cd进入文件夹 再npm init 初始化 2.npm install gulp --save-dev 为项目添加gulp,并将g ...

  7. 1242 斐波那契数列的第N项

    1242 斐波那契数列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F( ...

  8. CSS:CSS 语法

    ylbtech-CSS:CSS 语法 1.返回顶部 1. CSS 语法 实例 查看 实例 1 查看 实例 2 CSS 实例 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是 ...

  9. split("\\s+") 和 split(" +") 有什么区别?

    原文地址:https://blog.csdn.net/it_taojingzhan/article/details/51968993 "hello world, this is Al&quo ...

  10. form提交跳转问题

    $.ajax({ type: "POST", url: url, data: $('.form-horizontal').serialize(), 提交form表单 success ...