1.头文件及类型定义
#include<stdio.h>
#include<stdlib.h>
#define ElemType int
2.链栈类型定义
typedef struct LinkStackNode {
//链栈类型定义
ElemType data; //数据域
struct LinkStackNode* next; //指针域
}SNode,*LiStack;
3.函数声明
/*函数声明*/
bool InitLinkStack(LiStack& S); //1.初始化链栈
bool LiStackEmpty(LiStack S); //2.判空
bool Push(LiStack& S, ElemType e); //3.入栈
bool Pop(LiStack& S, ElemType& e); //4.出栈
bool GetTop(LiStack S, ElemType& e); //5.读取栈顶元素
4.基本操作
4.1 初始化链栈
//1.初始化栈(带头结点)
bool InitLinkStack(LiStack& S) {
S = (SNode*)malloc(sizeof(SNode

本文介绍了链栈的基本操作,包括初始化、判空、入栈、出栈和读取栈顶元素。讨论了带头结点和不带头结点的链栈在实现和使用上的差异,通常链栈不带头结点,因为其只在头部进行插入和删除,而单链表通常需要头结点以简化首元素操作。
最低0.47元/天 解锁文章
3194

被折叠的 条评论
为什么被折叠?



