• 用栈实现队列,实现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}
  • 相关阅读:
    文件管理后章
    文件管理前章
    文本处理三剑客
    匿名函数以及应用、三元表达式
    认识docker以及常用操作
    字符编码
    赋值与深浅拷贝
    Python基本运算符
    LVM配置
    Linux磁盘管理
  • 原文地址:https://www.cnblogs.com/zhangz/p/1301462.html
Copyright © 2020-2023  润新知