问题:有两个栈s1和s2,实现队列的push和pop功能。 一般思路:始终维护s1作为存储空间,并以s2作为临时缓冲区。s1实现入队操作,s2实现出队操作。 1,入队时,将元素压入s1。 2,出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素作为出队元素,之后再将s2剩下的元素逐个“倒回”s1中。 见下面示意图: 上述思路,可行性毋庸置疑,但是有一个小细节可以优化。即:在出队时,将s1元素逐个“倒入”s2时,原来在s1中后一个元素不用“倒入”s2中(即只需倒入s1.Count()-1个即可),可以直接将其弹出作为出队元素返回。这样可以减少一