static int stack[301]; static int i = 0; static int min_num = 99999; //假设的最小值,其实比栈中所有数都大,为的就是给机会找出栈中真正的最小值 void push(int value ) { stack[i++] = value; } void pop() { i--; //只弹出,不返回值,只需指针减1 } int top() { int top_num = stack[--i]; i++; return top_num; } int min() { int min; //这才是真正的最小值 for(int k = 0 ; k < i; k++) //来嘛,一个个比较,看谁小 if(stack[k] < min_num) min_num = stack[k]; //好,你更小,最小值让给你 min = min_num; //正式接位最小值 min_num = 999999; //min函数不止用一次,下次还得与假设的最小值开始比,所以要还原 return min; }