栈的定义
栈是一种后进先出的数据结构。
栈是限制插入和删除只能在一个位置上的线性表。允许删除和插入的一端位于表的末端,叫做栈顶。不允许删除和插入的另一端叫做栈底。对栈的基本操作有push(压栈)和pop(出栈)。
图示:
栈的实现
栈的实现主要包括两种方式:顺序栈和链表栈。
顺序栈
使用数组来实现。
缺点:
需要提前声明一个数组大小。如果数组不够大,就有可能发生越界问题。如果数组过大,则可能浪费一定的空间。
栈的定义实现:
typedef int Status;
typedef int ElemType;
typedef struct{
ElemType data[MAXSIZE];
int top;
}SqStack;
复制代码
初始化一个空栈
Status InitStack(SqStack *S){
S->top = -1;
return OK;
}
复制代码
将栈置空
Status ClearStack(SqStack *S){
S->top = -1;
return OK;
}
复制代码