介绍

  栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

  栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针

  栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶,另一端为栈底;栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈,删除则称为退栈。栈也称为先进后出表。

  如图:

      

用法

  stack与vector类似,也是C++中一种常用的容器

  首先,使用它需要一种特殊的头文件

1 #include<stack> //当然也可以使用<bits/stdc++.h>万能头文件

  以下是它的具体用法

1 stack<int> s; //建立一个栈s,元素类型为int
2 s.push(a); //将元素a压入栈s
3 s.pop(); //将栈s的栈顶元素弹出
4 s.top(); //查询s的栈顶元素
5 s.size(); //查询s的元素个数
6 s.empty(); //查询s是否为空

  如果还是不明白某一函数的具体作用,可以看这张图:

      

码字不易,点个赞呗§(* ̄▽ ̄*)§

最新文章

  1. java观察者模式
  2. python select网络编程详细介绍
  3. java分享第十七天-02(封装操作excel类)
  4. BZOJ1012 [JSOI2008]最大数maxnumber
  5. 幻灯片插件FlexSlider -- Amaze UI幻灯片参数
  6. JS创建自定义对象
  7. 栈(顺序存储)C++模板实现
  8. JSOI2009 游戏
  9. SGU 147.Black-white king
  10. jQuery源码学习:使用隐藏的new来创建对象
  11. FMDB将对象放进数据库[二](使用runtime)
  12. C++中文件的读写
  13. .net 后台判断是否要替换
  14. 09 Zabbix4.0系统clone、mass update使用
  15. EasyFlash 的初始化配置
  16. 反射中的一个问题点:利用Method执行main方法特殊的地方
  17. CSS深入理解之z-index
  18. java生成二维码(最初版)
  19. Docker(二):Registry 镜像仓库
  20. OSRM笔记

热门文章

  1. windows10 设置VS一类的不提供兼容性视图的程序默认管理员启动
  2. ajax 获取json值
  3. SpringCloud Alibaba(六) - Seata 分布式事务锁
  4. 乐观锁思想在JAVA中的实现——CAS
  5. Thrift RPC添加access log
  6. [FCC] Cash Register 计算找零
  7. python操作MySQL数据库连接(pymysql)
  8. pickle兼容问题
  9. [编程基础] C++多线程入门1-创建线程的三种不同方式
  10. 问一个 Windows 窗口的 Capture 问题