// 栈的压入、弹出顺序
// a表示压入顺序,b表示弹出顺序。
bool IsStackOrder(int a[],int b[],int n)
{if(a==NULL||b==NULL||n<=0)throw exception("Invalid input!");if(n==1)return true;vector<int> vec;int i,j;j=-1;for(i=0;i<n;i++){if(!vec.empty()&&b[i]==vec.back())// 栈顶的情况{vec.erase(vec.end()-1);}else{j++;while(j<n&&a[j]!=b[i]){vec.push_back(a[j]);j++;} // 在后面的序列当中找到了if(j==n)return false;}}if(i==n&&vec.empty())return true;elsereturn false;
}
void main()
{ int a[5]={1,2,3,4,5};int b[5]={3,5,4,2,1};cout<<IsStackOrder(a,b,5)<<endl;system("pause");
}

  

转载于:https://www.cnblogs.com/dyc0113/p/3210786.html

判断入栈和出栈顺序是否一致相关推荐

  1. 按顺序入栈,出栈顺序的判断方法

    栈(stack)又名堆栈,它是一种运算受限的线性表.限定仅在表尾进行插入和删除操作的线性表.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈顶元 ...

  2. C++的STL 栈实现 判断栈的出栈顺序是否合理

    有这样的题目: 已知从1至n的数字序列,按顺序入栈,每个数字入栈后即可出栈, 也可在栈中停留,等待后面的数字入栈出栈后,该数字再出栈,求该数字序列的出栈序列是否合法? 类似如下: 已知栈的出栈序列为: ...

  3. 面试题之判断栈的入栈和出栈序列的合法性

    完整题目是这样的:给我们两个序列,第一个序列表示栈的压入顺序,然后让判断第二个序列是不是是否是该栈的弹出序列.现设第一个序列为[1,2,3,4,5],第二个序列为[3,2,5,4,1],可以看出这个出 ...

  4. 【C++】【数据结构】顺序栈的基本操作(初始化、入栈、出栈、取栈顶元素、遍历输出栈)的算法实现附全代码

    C++实现顺序栈的算法+步骤(附全代码): 使用c++完成数据结构顺序栈的基本操作,包括(初始化.入栈.出栈.取栈顶元素.遍历输出栈等),可直接编译运行. 顺序栈的定义如下: #define MAXS ...

  5. 栈的入栈和出栈的顺序规律

    栈的入栈和出栈的顺序规律是先进后出,所以出栈的可能数目跟入栈的可能排列数目是一致的.a的出入有2中可能,b的出入有2种可能,c的出入有2种可能,d只需要关系入,只有一种可能.所以出栈方式数为2*2*2 ...

  6. java顺序栈_顺序栈的基本操作(入栈和出栈)

    顺序栈的基本操作(入栈和出栈) 顺序栈,即用顺序表实现栈存储结构.通过前面的学习我们知道,使用栈存储结构操作数据元素必须遵守 "先进后出" 的原则,本节就 "如何使用顺序 ...

  7. c语言出栈入栈指针的管理,设计顺序栈有关入栈和出栈的操作算法

    问题描述: 设有两个栈s1.s2都釆用顺序栈方式,并且共享一个存储区[0, -, maxsize-1],为了尽量利用空间,减少溢出的可能,可釆用栈顶相向.迎面增长的存储方式.试设计s1.s2 有关入栈 ...

  8. 数据结构:顺序栈基本操作(入栈和出栈)C语言详解(转载)by解学武

    本文为解学武教程的免费章节 什么是顺序栈 顺序栈,即用顺序表实现栈存储结构.通过前面的学习我们知道,使用栈存储结构操作数据元素必须遵守 "先进后出" 的原则,本节就 "如 ...

  9. 顺序栈基本操作(入栈和出栈)C语言详解

    #include <stdio.h> #include <stdlib.h> /*顺序栈基本操作(入栈和出栈)C语言详解栈的具体实现(1)顺序栈(2)链栈栈的应用(1)回退 ( ...

  10. c语言堆栈基本代码入栈出栈_顺序栈基本操作(入栈和出栈)C语言详解

    顺序,即用{1,2,3,4},存储状态如 图 1 顺序表存储 {1,2,3,4} 同样,使用栈存储结构存储 {1,2,3,4},其存储状态如图 2 所示: 图 2 栈结构存储 {1,2,3,4} 通过 ...

最新文章

  1. 谷歌前CEO:美国科技优势面临最危险时刻
  2. 用python画万花筒写轮眼_万花筒写轮眼画法教程
  3. 四、深入elasticsearch中文搜索
  4. 如何防止表单的重复提交
  5. java专业术语 ioc_什么叫IOC(编程术语
  6. Glusterfs(distribute) + DRBD + heartbeat + mon 实现分布式文件系统1
  7. 计算机在言语康复的应用,实物交互在言语康复训练中的应用.pdf
  8. python文件路径的操作
  9. C处理Python返回的字串代码
  10. 百年GE濒临破产,传奇霸业何以衰亡?
  11. include vdimgck.php,织梦后台升级后验证码登录一直显示错误的解决方法
  12. 在linux添加驱动程序,linux下静态/动态加载驱动的两种方式
  13. 10g gtx 光纤通信测试_光纤通信optisystem实验
  14. jqueryUI对应jquery版本
  15. 扫描仪怎样装无线网络服务器,怎么设置打印机IP地址和安装扫描仪。
  16. 我国街景地图向何处去
  17. mysql索引左倾_MySQL索引学习
  18. 【云原生 | 34】Docker快速部署主流编程语言Java
  19. DataPipeline王睿:业务异常实时自动化检测 — 基于人工智能的系统实战
  20. 万兆网络传输速度测试_iperf测试万兆网卡tcp性能

热门文章

  1. 为什么要用 enable_shared_from_this ?
  2. 关于js中的this关键字
  3. [转载]函数getopt(),及其参数optind
  4. 六星经典CSAPP-笔记(7)加载与链接(上)
  5. rm命令修改为移动到回收站
  6. 总结大学一些常见数据结构简单实现(cc++语言)
  7. ios中input输入无效
  8. 大数据挑战与NoSQL数据库技术pdf
  9. 七. 多线程编程3.主线程
  10. php没有输出报错信息的解决