if(isStackEmpty(sta) == FALSE)
{
*element = *(sta.top - 1);
}
else
{
OK = FALSE;
}
return OK;
}
int stackLength(STACK sta)
{
return sta.top - sta.base;
}
void clearStack(STACK *sta)
{
sta->top = sta->base;
}
Boolean isStackEmpty(STACK sta)
{
return sta.top == sta.base;
}
void destroyStack(STACK **sta)
{
if((*sta)->base)
free((*sta)->base);
(*sta)->top = NULL;
free(*sta);
}
STACK *initStack(int maxRoom)
{
STACK *stack;
stack = (STACK *)malloc(sizeof(STACK));
if(stack == NULL)
{
exit(1);
}
else
{
stack->maxRoom = maxRoom;
stack->base = (USER_TYPE *)malloc(sizeof(USER_TYPE) * maxRoom);
if(stack->base == NULL)
{
exit(0);
}
stack->top = stack->base;
}
return stack;
}