我正在尝试获取堆栈中的最小值,其中 StackMin、Pop 和 Push 都是Θ(1)
. 我的代码不起作用......这是我的尝试:
typedef struct{
int top;
int entry[1000];
int small;
} Stack;
void Pop(int *e,Stack *ps){
*e=ps->entry[--ps->top];
}
void Push(int e,Stack *ps){
ps->entry[ps->top++]=e;
}
int StackMin(Stack *ps){
ps->small=ps->entry[ps->top];
while(!StackEmpty(ps)){
int *e;
*e=ps->entry[--ps->top];
if(ps->small >= *e){
ps->small = *e;
}
}
return ps->small;
}