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;
}

京公网安备 11010502036488号