#include<stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct Linknode {
ElemType data; //数据域
struct Linknode *next; //指针域
} LiStack; //栈类型定义
//初始化链栈
LiStack* LiStack_HeadInsert() {
LiStack *L = (LiStack*) malloc(sizeof(LiStack)); //创建头结点
L->next = NULL; //将头结点指针置为NULL
return L;
}
//进栈操作
void LiStack_Push(LiStack *L, ElemType e) {
LiStack *s;
s = (LiStack*) malloc(sizeof(LiStack));
s->data = e;
s->next = L->next;
L->next = s;
}
//出栈操作
void LiStack_Pop(LiStack *L) {
L->next = L->next->next;
}
//取出栈顶元素
int GetTop(LiStack *L) {
int x = L->next->data;
return x;
}
int main() {
LiStack *L = LiStack_HeadInsert();
//进栈
LiStack_Push(L, 100);
//进栈
LiStack_Push(L, 101);
//读出栈顶元素
ElemType i = GetTop(L);
printf("栈顶元素为:%d\n", i);
//出栈
LiStack_Pop(L);
//读出栈顶元素
ElemType j = GetTop(L);
printf("栈顶元素为:%d", j);
}
链栈的基本操作 C语言版
最新推荐文章于 2024-05-28 20:18:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)