Queue是先进先出的集合而Stack是后进先出的集合。这两个集合在日常的工作中也经常会用到。Queue相当我们去银行柜台排队,大家依次鱼贯而行。Stack象我们家中洗碗,最后洗好的碗叠在最上面,而下次拿的时候是最先拿到最后叠上去的碗。了解了这样场景,就很容易明白Stack和Queue可用在哪里了。

比如我们为医院作一个排队叫号的系统,那肯定是选择Queue对象处理。如果我们要为出牌或下棋准备一个场景,那肯定是选择Stack,因为通过Stack至少可用提供用户悔棋啊。

以下是Queue的代码演示:

System.Collections.Queue q = new System.Collections.Queue();

for (int i = 0; i <= 10; i++)

{

q.Enqueue(i);//入队

}

System.Console.WriteLine(q.Count);

while (q.Count > 0)

{

System.Console.WriteLine(q.Dequeue());//出队

}

运行的结果如图3.1.27所示:

图3.1.27

以下是Stack的代码演示:

System.Collections.Stack s = new System.Collections.Stack();

for (int i = 0; i <= 10; i++)

{

s.Push(i);//入栈

}

System.Console.WriteLine(s.Count);

while (s.Count > 0)

{

System.Console.WriteLine(s.Pop());//出栈

}

虽然放置元素的次序和Queue一样,但取出的顺序正好相反,如图3.1.28:

图3.1.28

Stack和Queue:后进先出和先进先出相关推荐

  1. C++知识点25——使用C++标准库(容器适配器stack、queue、priority_queue)

    除了vector,list,deque等常用的容器,还有根据这些常用的容器进行改造来满足特殊要求的容器,这些特殊容器的行为和常用容器很相近,也称为容器适配器. 常用的容器适配器有三个,分别是stack ...

  2. C++ STL : 模拟实现STL中的容器适配器stack和queue

    目录 什么是容器适配器 stack stack的文档介绍-(来自cplusplus) stack的实现 queue queue的文档介绍-(来自cplusplus) queue的实现 什么是容器适配器 ...

  3. C++中的deque、stack、queue及priority_queue

    C++中的deque.stack.queue及priority_queue 文章目录 C++中的deque.stack.queue及priority_queue 一.deque 二.stack 三.q ...

  4. Stack与queue的底层实现、区别。

    一.stack(栈):先进后出 1.栈是一种只能从表的一端存取数据且遵循 "先进后出" 原则的线性存储结构. 栈的开口端被称为栈顶:相应地,封口端被称为栈底. 向栈中添加元素,此过 ...

  5. STL库:stack和queue

    STL库:stack和queue 文章目录 STL库:stack和queue 1.STL库中stack的官方介绍 2.stack的常用接口 3.stack的模拟实现 4.STL库中queue的官方介绍 ...

  6. C++stack与queue模拟实现

    愿煦风和日永远卫护着可爱的你. stack与queue模拟实现 stack queue 为什么选择deque作为stack和queue的底层默认容器 在stl中,stack(栈)与queue(队列)都 ...

  7. C#常见容器ArrayList、List、HashSet、Hashtable 、Dictionary、Stack、Queue

    一.ArrayList.List< T >列表和HashSet< T >哈希集 1.简单介绍及区别: 命名空间 System.Collections:ArrayList Sys ...

  8. stack、queue和priority_queue

    目录 一.栈(stack) 1.stack的使用 2.容器适配器 3.stack的模拟实现 二.队列(queue) 1.queue的使用 2.queue的模拟实现 三.双端队列(deque) 1.ve ...

  9. c++--stack,queue,priority_queue

    前言 对于栈和队列我们是不陌生的,在数据结构阶段已经学习过,记得当时我们还是用c语言将它一步一步造出来,因为压栈与出栈正好满足数组的尾插与头删,数组的代价是及小的.对于队列是头出队列,尾插.所以就栈的 ...

最新文章

  1. 第十六届智能车竞赛线上全国总决赛远程组委会监督腾讯会议
  2. C++学习网站。两个 CodeProject,Codeguru
  3. org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决
  4. 虚拟化技术中,为什么说容器技术暂时将不会取代虚拟机模式
  5. android控件的对齐方式(转)
  6. 修改FTP服务器端口后无法访问
  7. 苹果电脑上超级好用的双栏文件管理器Commander One PRO版推荐给大家!
  8. HTML5自定义属性
  9. poj 3411 Paid Roads
  10. 最新,87本SCI/SSCI期刊被剔除,这5本TOP刊也在内?
  11. python+pytesseract本地pdf识别转文字,图片识别转文字,避坑大量识别转文字时的内存泄露问题解决
  12. Python入门-类的成员
  13. 对“黑暗森林”的质疑和讨论(总结各家言论)
  14. 王祥林 计算机专业英语答案,计算机专业英语 第3版 配套习题 作者 王祥林 陈静姣 模拟试题1.doc...
  15. 基于时间序列分析方法的零售业快消品销量预测研究
  16. python爬虫自动提交HDU并获取AC状态(p3+request+Beatifulsoup)
  17. 光功率显示c语言程序,c语言程序设计 - 三电实验教学中心.doc
  18. 程序员成就技术大拿之路
  19. 浅谈WaterMark
  20. Linux : Screen 详解

热门文章

  1. 记录--使用Vue开发Chrome插件
  2. 苹果交付iOS 6系统 可无线升级
  3. 写给未来的妻子--你
  4. 【运维工具】分享[海外]文件下载加速网站(更新于2022年5月1日)
  5. 企业数据治理,并不止于数据
  6. SpringSecurity入门(SSM版)
  7. javabean,BeanUtils以及 java7的新特性 .
  8. CSS3动画(旋转)
  9. 使用ffmpeg转换webm格式
  10. ZCMU-1315:孙子算经(枚举)