C语言中如何初始化栈 每个元素均为空

C语言中如何初始化栈 每个元素均为空,第1张

<1>如果顺序栈的定义如下

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其它 *** 作才会正确执行


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8123783.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存