数据结构栈的问题

2025-02-27 04:35:01
推荐回答(1个)
回答1:

第一个问题
push函数错了
void push_seq(PSeqStack pastack,Datatype x)//插入元素 X;
{
if(pastack->top==pastack->MAXNUM-1)//判断是否溢出
printf("Owerflow\n");
else
{
pastack->top=pastack->top+1;//将栈顶标记加1;
pastack->s[pastack->top]=x;
}
}

第二个问题
栈有个独立的IsEmpty函数,你已经写了,不过写错了
int isEmptyStack_seq(PSeqStack pastack) //判断栈是否为空;即是否下溢
{
return(pastack->top==-1);
}

对top和pop函数使用之前,应该调用这个函数
int main()
{
PSeqStack p;
p=creatEmptyStack_seq(10);//创建一个空栈!大小为10个DataType

if(!isEmptyStack_seq(p))
printf("%d\n", top_seq(p));
else
printf("It is empty\n");
}