用栈实现队列,实现Enqueue和Dequeue方法
队列是先进先出,栈是先进后出,使用两个栈来模拟队列:
入队就是入第一个栈,出队是把第一个栈的元素全部出栈到第二个栈里,然后第二个栈出栈,再把剩下的倒回第一个栈。
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方法相关推荐
- Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...
本文实例讲述了java数据结构之链表.栈.队列.树的实现方法.分享给大家供大家参考,具体如下: 最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查. 一.线性表(链表) 1.节 ...
- 迷宫(栈、队列、递归3种方法)和八皇后(栈和递归2种方法)的C/C++描述(上)
***迷宫: 栈是只能在一端进行添加元素和删除元素的表,分顺序栈和链式栈.程序里变量命名应该长一些,做到见名知意.提高程序阅读性.本文用栈的方法存储路径中每一步,栈中每个元素是结构体变量,包含每一步的 ...
- 【数据结构与算法】栈与队列
栈 一.什么是栈? 1.后进者先出,先进者后出,这就是典型的"栈"结构. 2.从栈的操作特性来看,是一种"操作受限"的线性表,只允许在端插入和删除数据. 二.为 ...
- 队列的基本操作_算法与数据结构(五) 栈和队列
? 工欲善其事,必先利其器. 栈和队列 - Stack And Queue 栈 如何理解栈呢? 后进者先出,先进者后出,这就是典型的 "栈" 结构. 04_栈和队列-栈结构 从栈的 ...
- 栈和队列在python中的实现
栈和队列是两种基本的数据结构,同为容器类型,队列是先进先出,栈是先进后出. 栈 栈提供 push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterat ...
- 学习JavaScript数据结构与算法(一):栈与队列
本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列 第二篇文章:学习JavaScript数据结构与算法(二):链表 第三篇文章:学习JavaScript数据结构与算法(三): ...
- C# 栈 、队列的概念
栈: 也是System.Collections下的数据结构 存储依然是Object类型的对象 Stack 名字 = new Stack(); Count:实际拥有的元素个数 栈的释放顺序是先进后出(后 ...
- 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解
目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...
- 第十章 基本数据结构——栈和队列
摘要 本章介绍了几种基本的数据结构,包括栈.队列.链表以及有根树,讨论了使用指针的简单数据结构来表示动态集合.本章的内容对于学过数据结构的人来说,没有什么难处,简单的总结一下. 1.栈和队列 栈和队列 ...
- 数据结构-王道2017-第3章 栈和队列-队列
1.队列简称队,也是一种操作受限的线性表,只允许在表的一端插入,而在表的另一端删除 先进先出FIFO,不能随便读取队列中间的某个数据 队头(Front):允许删除的一端,又称为队首 队尾(rear): ...
最新文章
- ajax对象状态0,ajax返回readyState为0?
- Java基础:char类型字节占用数
- java定时器偶尔重复推送_在Java中创建重复的定时器提醒
- 他用科技复活传统艺术:发现甲骨文的终极浪漫
- 你应该知道的 Linux 命令行技巧
- 先滑窗后时空联合处理MATLAB,时空联合优化重建方法及系统与流程
- python3解析json数据_Python3 JSON 数据解析
- DB2数据库添加删除约束项
- Vue之webpack之基本使用
- docker命令总结(二)
- ubuntu hadoop安装教程
- cgi备份还原(cgi备份还原失败)
- 信用评分卡模型python_信用评分卡模型在Python中实践(下)
- Java实现蓝桥杯二项式的系数规律
- H5跳转微信公众号关注页面
- t检验自由度的意义_统计学中自由度的理解和应用
- java.lang.IllegalArgumentException: Not an entity: class
- 欧拉定理,费马小定理证明
- php安全新闻早八点-Microdoor-第四季
- mysql 8.0 导入文件_MySQL8.0实验-从本地文件导入数据