155. 最小栈
1 typedef struct { 2 3 int data[10000]; 4 int top; 5 } MinStack; 6 7 /** initialize your data structure here. */ 8 9 MinStack* minStackCreate() { 10 MinStack *st; 11 st = (MinStack *)malloc(sizeof(MinStack)); 12 st->top=-1; 13 //st->data = (int *)malloc(sizeof(int)*100000); 14 return st; 15 } 16 17 void minStackPush(MinStack* obj, int val) { 18 19 obj->data[++(obj->top)]=val; 20 } 21 22 void minStackPop(MinStack* obj) { 23 obj->data[(obj->top)--]; 24 } 25 26 int minStackTop(MinStack* obj) { 27 return obj->data[obj->top]; 28 } 29 30 int minStackGetMin(MinStack* obj) { 31 int min=obj->data[0]; 32 for(int i=0;i<=obj->top;i++) 33 { 34 if(min>(obj->data[i])) 35 { 36 min = obj->data[i]; 37 } 38 } 39 40 return min; 41 } 42 43 void minStackFree(MinStack* obj) { 44 free(obj); 45 } 46 47 /** 48 * Your MinStack struct will be instantiated and called as such: 49 * MinStack* obj = minStackCreate(); 50 * minStackPush(obj, val); 51 52 * minStackPop(obj); 53 54 * int param_3 = minStackTop(obj); 55 56 * int param_4 = minStackGetMin(obj); 57 58 * minStackFree(obj); 59 */