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 */

 

posted @ 2021-06-17 15:48  传说中的旅行者  阅读(25)  评论(0编辑  收藏  举报