栈
栈是限定仅在表尾进行插入和删除操作的线性表。可以看做是一种特殊的线性表,它按照先进后出的原则存储数据。更加的抽象的来说,栈具有记录的功能,最典型的栈的应用就是计算机中进程地址区间的栈区,这块区域被组织成栈的结构,供函数调用使用,可以记录函数在调用中相关的一些信息。一般分为顺序栈和链式栈,顺序栈是基于线性顺序表,而链式栈基于链表。
栈结构示意图
下面看下顺序栈的简单实现:
#define STATCK_INIT_SIZE 10
#define STACK_INCREMENT 2
typedef unsigned int size_t;
struct SqStack
{
SElemType *base;
SElemType *top;
size_t stack_size;
};
//初始化
Status init_stack(SqStack* pS)
{
as