【leetcode】栈的最小值

 

typedef struct {
    int top;
    int minIndex[10000];
    int stack[10000];
} MinStack;

MinStack* minStackCreate() {
    MinStack* obj = (MinStack*)calloc(1,sizeof(MinStack));
    obj->top=-1;
    return obj;
}
void minStackPush(MinStack* obj, int x) {
    obj->stack[++obj->top] = x;
    if (obj->top >= 1 && x >= obj->minIndex[obj->top-1]) 
        obj->minIndex[obj->top] =obj->minIndex[obj->top-1];                
    else
        obj->minIndex[obj->top] = x;        
}
void minStackPop(MinStack* obj) {
    obj->top--;
}
int minStackTop(MinStack* obj) {
    return obj->stack[obj->top];
}
int minStackGetMin(MinStack* obj) {
    return obj->minIndex[obj->top];
}
void minStackFree(MinStack* obj) {
    free(obj);
}

 

posted @ 2020-09-18 15:18  温暖了寂寞  阅读(148)  评论(0编辑  收藏  举报