背景
栈是一种先进后出的数据结构(First In Last Out)。它在实际编程中起到了非常重要的作用。比如,我们程序在运行中对函数的调用,就有着明显的压栈和出栈的操作,栈按存储结构分类分为链式栈和顺序栈。那么栈的链式存储如何实现呢?以下是一些实现思路,完整代码请用随意门~
栈的链式存储实现
一,概念及示意图
栈的链式存储示意图

二,实现代码
(一)数据形式
1 | typedef struct node |
(二)初始化
1 | void InitStack(Pstack stack) |
(三)检测为空
1 | bool StackIsEmpty(Pstack stack) |
(四)压栈操作
1 | bool PushStack(Pstack stack) |
(五)出栈操作
1 | bool PopStack(Pstack stack) |
(六)获取栈的长度
1 | void GetStackLength(Pstack stack) |
(七)遍历操作
1 | void TraverseStack(Pstack stack, void(*pfun)(int *data)) |