队列是先进先出,栈是先进后出,使用两个栈来模拟队列:

入队就是入第一个栈,出队是把第一个栈的元素全部出栈到第二个栈里,然后第二个栈出栈,再把剩下的倒回第一个栈。

 1using System;
 2using System.Collections;
 3
 4namespace Algorithm
 5{
 6    class Program
 7    {
 8        static void Main(string[] args)
 9        {
10            Queueq = new Queue();
11            q.Enqueue(1);
12            q.Enqueue(2);
13            q.Enqueue(3);
14            q.Enqueue(4);
15            Console.WriteLine(q.Dequeue());
16        }
17    }
18    class Queue
19    {
20        private Stack s1=new Stack();
21        private Stack s2=new Stack();
22
23        public void Enqueue(object o) 
24        {
25            s1.Push(o);
26        }
27        public object Dequeue() 
28        {
29            while (s1.Count > 0) 
30            {
31                s2.Push(s1.Pop());
32            }
33            object o = s2.Pop();
34            while (s2.Count > 0) 
35            {
36                s1.Push(s2.Pop());
37            }
38            return o;
39        }
40    }
41}

转载于:https://www.cnblogs.com/zhangz/archive/2008/09/28/1301462.html

用栈实现队列,实现Enqueue和Dequeue方法相关推荐

  1. Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...

    本文实例讲述了java数据结构之链表.栈.队列.树的实现方法.分享给大家供大家参考,具体如下: 最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查. 一.线性表(链表) 1.节 ...

  2. 迷宫(栈、队列、递归3种方法)和八皇后(栈和递归2种方法)的C/C++描述(上)

    ***迷宫: 栈是只能在一端进行添加元素和删除元素的表,分顺序栈和链式栈.程序里变量命名应该长一些,做到见名知意.提高程序阅读性.本文用栈的方法存储路径中每一步,栈中每个元素是结构体变量,包含每一步的 ...

  3. 【数据结构与算法】栈与队列

    栈 一.什么是栈? 1.后进者先出,先进者后出,这就是典型的"栈"结构. 2.从栈的操作特性来看,是一种"操作受限"的线性表,只允许在端插入和删除数据. 二.为 ...

  4. 队列的基本操作_算法与数据结构(五) 栈和队列

    ? 工欲善其事,必先利其器. 栈和队列 - Stack And Queue 栈 如何理解栈呢? 后进者先出,先进者后出,这就是典型的 "栈" 结构. 04_栈和队列-栈结构 从栈的 ...

  5. 栈和队列在python中的实现

    栈和队列是两种基本的数据结构,同为容器类型,队列是先进先出,栈是先进后出. 栈 栈提供 push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterat ...

  6. 学习JavaScript数据结构与算法(一):栈与队列

    本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列 第二篇文章:学习JavaScript数据结构与算法(二):链表 第三篇文章:学习JavaScript数据结构与算法(三): ...

  7. C# 栈 、队列的概念

    栈: 也是System.Collections下的数据结构 存储依然是Object类型的对象 Stack 名字 = new Stack(); Count:实际拥有的元素个数 栈的释放顺序是先进后出(后 ...

  8. 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解

    目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...

  9. 第十章 基本数据结构——栈和队列

    摘要 本章介绍了几种基本的数据结构,包括栈.队列.链表以及有根树,讨论了使用指针的简单数据结构来表示动态集合.本章的内容对于学过数据结构的人来说,没有什么难处,简单的总结一下. 1.栈和队列 栈和队列 ...

  10. 数据结构-王道2017-第3章 栈和队列-队列

    1.队列简称队,也是一种操作受限的线性表,只允许在表的一端插入,而在表的另一端删除 先进先出FIFO,不能随便读取队列中间的某个数据 队头(Front):允许删除的一端,又称为队首 队尾(rear): ...

最新文章

  1. ajax对象状态0,ajax返回readyState为0?
  2. Java基础:char类型字节占用数
  3. java定时器偶尔重复推送_在Java中创建重复的定时器提醒
  4. 他用科技复活传统艺术:发现甲骨文的终极浪漫
  5. 你应该知道的 Linux 命令行技巧
  6. 先滑窗后时空联合处理MATLAB,时空联合优化重建方法及系统与流程
  7. python3解析json数据_Python3 JSON 数据解析
  8. DB2数据库添加删除约束项
  9. Vue之webpack之基本使用
  10. docker命令总结(二)
  11. ubuntu hadoop安装教程
  12. cgi备份还原(cgi备份还原失败)
  13. 信用评分卡模型python_信用评分卡模型在Python中实践(下)
  14. Java实现蓝桥杯二项式的系数规律
  15. H5跳转微信公众号关注页面
  16. t检验自由度的意义_统计学中自由度的理解和应用
  17. java.lang.IllegalArgumentException: Not an entity: class
  18. 欧拉定理,费马小定理证明
  19. php安全新闻早八点-Microdoor-第四季
  20. mysql 8.0 导入文件_MySQL8.0实验-从本地文件导入数据

热门文章

  1. 如何查找识别苹果无线鼠标/无线键盘/触控板的设备序列号
  2. 如何利用Mac电脑制作让你脱颖而出的简历
  3. 看雪学院荣获TSRC 2018年度峰会优秀合作伙伴
  4. Eclipse中的快捷键……希望朋友们能熟练使用
  5. 任务调度在分布式部署环境下保证task的正确运行
  6. ANDROID模拟器不能启动
  7. 并发---ConcurrentHashMap
  8. div中字符串自动换行
  9. java对象结构 对象头 Markword
  10. 同事乱用分页 MySQL 卡爆,我真是醉了...