思路:1:在stack的数据结构中加两个个字段,如
typedef struct {
int data[MAX]; // 存储栈中的所有数
int top; // 存储栈顶元素在data数组中的位置
int min; // 最小值
int second; // 次小值
}stack;
pop,push的时候都去栈顶元素,所以是O(1)
min的时候取stack的min字段,所以也是O(1)
每次push的时候进行比较,如果当前push的元素比stack->min小,则用当前元素替换stack->min,用原来的min替换second。如果当前push的元素比stack->min<