//栈的链式存储--不带头结点
#include <stdio.h>
#include <stdlib.h>
struct LNode{
int data;
struct LNode *next;
};
typedef struct LNode LNode;
typedef struct LNode* SqStack;
/*
初始化链式栈
*/
SqStack initStack(SqStack sqStack){
sqStack=NULL;
return sqStack;
}
/*
销毁链式栈
*/
void destory(SqStack sqStack){
while(sqStack!=NULL){
LNode* tmpLNode=sqStack;
sqStack=(*sqStack).next;
free(tmpLNode);
}
}
/*
判空栈
返回值
0--空
1--非空
*/
int stackEmpty(SqStack sqStack){
if(sqStack==NULL){
return 0;
}else{
return 1;
}
}
/*
进栈
返回值
NULL--失败
具体的地址--成功
*/
SqStack push(SqStack sqStack,int data){
LNode *newLNode=(LNode *)malloc(sizeof(LNode));
if(newLNode==NULL){
return NULL;
}
(*newLNode).data=data;
(*newLNode).next=sqStack;
sqStack=newLNode;
printf("%d,",data);
return sqStack;
}
/*
出栈
返回值
NULL--失败
具体的地址--成功
*/
SqStack pop(SqStack sqStack,int *data){
//指向第一个结点
LNode *t
栈的链式存储--不带头结点C语言实现
最新推荐文章于 2023-08-22 11:04:35 发布
本文详细介绍了如何使用C语言实现链式存储栈,不带头结点的方式,涵盖了栈的基本操作,包括入栈、出栈和判断栈空等。
摘要由CSDN通过智能技术生成