标签: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