
typedef struct
{datatype data[stacksize]
int top
}SeqStack
---则置空栈的 *** 作如下
void InitStack(seqstack *s)
{s->top=-1
}
<2>如果链栈的定义如下
typedef struct node
{datatype data
struct node *next
}LinkStack
---则置空栈的 *** 作如下
void InitStack(linkstack *s)
{s->top=null
}
else if(n==4){
if(pop(s)!=FALSE)/*此处执行一次pos(s)*/
{
printf("被删值为%d\n",pop(s)) /*第二次执行pos(s)*/
}
}
else if(n==5)
{
if(pop(s)!=FALSE)/*执行top(s)之前多执行了一次pos(s)*/
{
printf("栈顶元素为%d\n",top(s))
}
执行pos(s)和top(s)如果要判断的话,判断栈非空
if(!empty(s)
printf("被删值为%d\n",pop(s))
此程序还有个问题是只有选1时才会为栈分配空间,置s->top=-1因此开始先选1其它 *** 作才会正确执行
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)