/// <summary> /// 两个栈实现一个队列,利用栈先进后出的原理,栈1 进入栈2的数据顺序就会倒过来,实现,先进先出(队列) /// </summary> class StackToQueue { public Stack<int> stack1 = new Stack<int>(); public Stack<int> stack2 = new Stack<int>(); /// <summary> /// 加入一个值 /// </summary> /// <param name="val"></param> public void Put(int val) { stack1.Push(val); } /// <summary> /// /// </summary> /// <returns></returns> public int Pop() { if (stack2.Count > 0) { return stack2.Pop(); } if (stack1.Count == 0) { return -1; } while (stack1.Count > 0) { stack2.Push(stack1.Pop()); } return stack2.Pop(); } }