标签:leetcode
Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
typedef struct {
int* a;
int top;
int maxSize;
} MinStack;
void minStackCreate(MinStack *stack, int maxSize) {
stack->a = (int*)malloc(sizeof(int)*maxSize);
stack->top = 0;
stack->maxSize = maxSize;
}
void minStackPush(MinStack *stack, int element) {
stack->a[stack->top++] = element;
}
void minStackPop(MinStack *stack) {
stack->top--;
}
int minStackTop(MinStack *stack) {
return stack->a[stack->top - 1];
}
int minStackGetMin(MinStack *stack) {
int minimum = stack->a[0];
for (int i = 0;i < stack->top;i++){
if (minimum > stack->a[i]){
minimum = stack->a[i];
}
}
return minimum;
}
void minStackDestroy(MinStack *stack) {
free(stack->a);
}版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:leetcode
原文地址:http://blog.csdn.net/u014705854/article/details/47277299