C语言 迷宫问题(堆栈及其应用)(2)

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;
 
}
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6b573b490e4e7f67402ff44e8bcc4bf7.html