您的位置:首页 > 职场人生

面试题--用两个栈实现一个队列

2011-10-04 12:01 309 查看
class SimulateQueueBy2Stacks
{
private Stack<int> _stack1 = new Stack<int>();
private Stack<int> _stack2 = new Stack<int>();

public void Enqueue(int value)
{
_stack1.Push(value);
}

public int Dequeue()
{
if(Empty())
throw new Exception("队列空");
else
{
if (_stack2.Count == 0)
{
while (_stack1.Count != 0)
{
_stack2.Push(_stack1.Pop());
}
}
return _stack2.Pop();
}
}

public bool Empty()
{
return _stack1.Count == 0 && _stack2.Count == 0;
}
}
一个栈用来进,一个栈用来出。需要满足,用来出的栈必须全部出栈才能有新值入栈,用来进的栈必须全部出栈才能有新值入栈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: