题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路:
两个栈,一个栈用于存储数据(入栈)inStack,另一个栈用于弹出数据(出栈)outStack,入队列则将数据存储到inStack栈中,出队列的话,先判断outStack栈中是否有数据,有的话直接出栈即可,若无数据,则将inStack中的数据全部弹出压入到outStack中,再出栈即可
//声明两个栈,一个用于存储数据(入栈),一个用于弹出数据(出栈)
Stack<int> inStack = new Stack<int>();
Stack<int> outStack = new Stack<int>();
public void push(int node)
{
inStack.Push(node);
}
public int pop()
{
int r = 0;
if (outStack.Count!=0)
{
r= outStack.Pop();
}
else
{
while (inStack.Count!=0)
{
outStack.Push(inStack.Pop());
}
if (outStack.Count!=0)
{
r= outStack.Pop();
}
}
return r;
}