📄 stack.h
字号:
// file: stack.h
#include "com_def.h"
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
// 定义栈数据类型
/*
typedef struct
{
int date;
}ElemType;
*/
typedef enum _STACK_Status
{
STACK_OK = 0,
STACK_ERR
}STACK_Status;
typedef struct
{
byte *base;
byte *top;
int stacksize;
uint8 elemsize;
}SqStack;
// 构造一个空栈
bool InitStack(SqStack *S, uint8 elemsize);
// 销毁栈
void DestroyStack(SqStack *S);
// 把S置为空栈
void ClearStack(SqStack *S);
// 判断栈是否为空
bool StackEmpty(SqStack *S);
// 返回栈的长度
int StackLength(SqStack *S);
// 若栈不空,用e返回S的栈顶元素
bool GetTop(SqStack *S, void *e);
// 将e压至栈顶
bool Push(SqStack *S, void *e);
// 删除栈顶元素,并以e返回
bool Pop(SqStack *S, void *e);
// 从栈顶到栈底(也可以栈底到栈顶)每个元素调用函数visit
bool StackTraverse(SqStack *S, bool (*visit)(void *e) , bool direction);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -