Stack<int> stk1 = new Stack<int>();
Stack<int> stk2 = new Stack<int>();
public void push(int node)
{
stk2.Push(node);
if(stk1.Count==0)
stk1.Push(node);
else{
if(node<stk1.Peek())
stk1.Push(node);
//记住这里的else不能写成if(node>=stk1.Peek()),因为上一句stk1.Peek()已经变成了node,会造成在上一个if执行完后,下一个if同样执行,这样stk1.Push()就会执行两次,我就经常犯这种低级错误。
else
stk1.Push(stk1.Peek());
}
}
public void pop()
{
stk1.Pop();
stk2.Pop();
}
public int top()
{
return stk2.Peek();
}
public int min()
{
return stk1.Peek();
}</int></int></int></int>