链式栈的插入与删除算法
- 2017-10-21 14:37:34
- 3,470 次阅读
- 0
链式栈在设计时要注意的问题是判断栈是否为空,链栈不存在栈满的情况(假定内存无限大的情况不存在)。现在要求设计一个用不带头结点的单链表存储栈,将一个新结点插入到栈顶中,然后将其删除的算法。具体算法内容如下:
①链式栈插入(push)参考图:
②链式栈插入(push)代码:
void push(LNode *&lst,int x)
{
LNode *p;
p=(LNode *)malloc(sizeof(LNode));
p->next=NULL;
p->data=x;
p->next=lst.top;
lst.top=p;
}
③链式栈删除(pop)参考图:
④链式栈删除(pop)代码:
int pop(LNode *&lst,int &x)
{
LNode *p;
if(lst.top==NULL)
return 0;
p=lst.top;
x=p->data;
lst.stop=p->next;
free(p);
return 1;
}
文章评论 (0)