题目




答案
bool Push( Stack S, ElementType X )
{
if(S->Top==S->MaxSize)
{
printf("Stack Full\n");
return false;
}
else
{
S->Data[S->Top]=X;
S->Top++;
return true;
}
}
ElementType Pop( Stack S )
{
if(S->Top==0)
{
printf("Stack Empty\n");
return ERROR;
}
else
{
S->Top--;
return S->Data[S->Top];
}
}
注意
本题要注意审题,Top定义为栈顶的上一个位置,但因为Top初始值为0,所以判断堆栈是否满了的时候,只需比较Top是否等于MaxSize即可
该篇博客详细介绍了如何实现一个另类堆栈,包括Push和Pop操作。在Push函数中,当堆栈满(Top等于MaxSize)时返回错误,否则将元素X存入堆栈并更新Top。Pop函数在堆栈为空(Top等于0)时返回错误,否则移除堆栈顶部元素并返回。特别注意,这里的Top被定义为栈顶的前一个位置,初始值为0,因此检查堆栈满的条件是Top等于MaxSize。
3059

被折叠的 条评论
为什么被折叠?



