用两个队列(Queue)实现一个栈(Stack)

来源:互联网 发布:阿里云 oss 视频 封 编辑:程序博客网 时间:2024/06/05 00:30
class Stack2    {        private Queue<int> q1;        private Queue<int> q2;        public Stack2()        {            q1 = new Queue<int>();            q2 = new Queue<int>();        }        public void Push(int x)        {            q1.Enqueue(x);                                                                                                                                                                                                                                        }        public int Pop()        {            if (q1.Count == 0)            {                if (q2.Count == 0)                {                    throw new Exception("为空");                }                else                {                    while (q2.Count > 1)                    {                        q1.Enqueue(q2.Dequeue());                    }                    return q2.Dequeue();//出队                }                            }            while (q1.Count > 1)            {                q2.Enqueue(q1.Dequeue());            }            return q1.Dequeue();//出队        }        public void write()        {            foreach (var q in q2)            {                Console.Write(q);                Console.Write(",");            }            foreach (var q in q1)            {                Console.Write(q);                Console.Write(",");            }                        Console.WriteLine();        }    }

原创粉丝点击