zoukankan      html  css  js  c++  java
  • 用栈实现队列,实现Enqueue和Dequeue方法

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

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

     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}
  • 相关阅读:
    浏览器的垃圾回收机制
    vue-router传参数的方式
    Vue插槽
    自定义事件
    vue计算属性和监听器
    vue绑定样式
    循环中使用同步请求
    小白之路 | 从小学一年级期末考试看servlet+jsp技术
    Java实现简单计算器的探索性做法
    分布式数据库NoSQL简介
  • 原文地址:https://www.cnblogs.com/zhangz/p/1301462.html
Copyright © 2011-2022 走看看