#include<stdio.h>
#include<stdlib.h>
typedef struct linkNode{
int data;
struct linkNode *next;
}lNode, *liStack;
void InitStack(liStack &s){//&引用
s=(liStack)malloc(sizeof(lNode));
if(s != NULL)
{
s->next = NULL;
}
}
void Push(liStack &s,int x){
lNode *p;
p=(lNode *)malloc(sizeof(lNode));
p->data=x;
p->next=s->next;//带头结点的单链表
s->next=p;
}
void Pop(liStack &s)
{
if (s->next==NULL){
printf("栈空");
exit(0);
}
else{
lNode *p;
p=s->next;
printf("%d",p->data);
s->next=p->next;
free(p);
}
}
int main(){
liStack s;
InitStack(s);
Push(s,1);
Push(s,2);
Push(s,3);
while(s->next!=NULL){
Pop(s);
}
}
C语言实现链栈的入栈、出栈
最新推荐文章于 2023-10-25 19:41:53 发布