首页 > 代码库 > 两种队列

两种队列

1.Stack和Queue

Stack是先进后出的,Queue是先进先出的。

使用方法如下:

        public class Dog
        {
            
            public string Name { get; set; }
            public Dog(string name)
            {
                this.Name = name;
            }
            public void ConsoleName()
            {
                Console.WriteLine(this.Name);
            }
        }           
           //栈 先进后出
            Stack<Dog> s = new Stack<Dog>();
            s.Push(new Dog("A"));//Push插入对象
            s.Push(new Dog("B"));
            s.Peek().ConsoleName();//Peek返回顶部对象--B
            s.Pop().ConsoleName();//移除并返回顶部对象(返回对象是移除的对象)--B
            s.Peek().ConsoleName();//--A

            //对列 先进先出
            Queue<Dog> q = new Queue<Dog>();
            q.Enqueue(new Dog("A"));
            q.Enqueue(new Dog("B"));
            q.Peek().ConsoleName();//返回位于开始处的对象--A
            q.Dequeue().ConsoleName() ;//移除并返回开始的对象--A
            q.Peek().ConsoleName() ;//A已经移除,返回B    

2.栈和队列的实际使用

  Stack:先进后出,饮料自动贩卖机,后放的饮料先卖。

  Queue:先进先出,如商店的存货,为防止过期,把先到的货摆上商品货架。

两种队列