使用两个栈来表示一个队列,需要考虑到的是栈的特点为先进后出,而队列的特点为先进先出,所以需要使用2个栈来表示这种关系。出栈调用stack.pop()方法,进栈调用stack.push(node)方法。知道这一点就很好去完成这个编程了。
对栈内压入元素前还需要考虑压入的栈是否为空,以及考虑被压入的栈是否为空
public class stacktoqueue
{
Stack<int> stack1 = new Stack<int>();
Stack<int> stack2 = new Stack<int>();
public void push(int number)
{
stack1.Push(number);
}
public int pop()
{
if (stack2.Count == 0)
{
while (stack1.Count != 0)
{
stack2.Push(stack1.Pop());
}
}
return stack2.Pop();
}
}