《C语言数据结构》严蔚敏,吴伟民版。
上章内容链接:https://blog.csdn.net/daqino1/article/details/88813280
下章内容链接:https://blog.csdn.net/daqino1/article/details/88833633
以下内容为栈
栈(stack):限定仅在表尾进行插入或删除操作的线性表。又称为后进先出(last in first out)的线性表(简称LIFO结构)。
栈顶(top):表尾端。
栈底(bottom):表头端。
//-----------------栈的抽象化定义-------------------
ADT Stack {
// 构造一个空栈S
InitStack(&S);
// 栈S销毁
DestoryStack(&S);
// 将S清为空栈
ClearStack(&S);
// 若栈S为空栈,返回TRUE,否则FALSE
StackEmpty(S);
// 返回栈S的元素个数,即栈的长度
StackLength(S);
// 用e返回S的栈顶元素
GetTop(S, &e);
// 插入元素e为新的栈顶元素
Push(&S, e);
// 删除S的栈顶元素,并用e返回其值
Pop(&S, &e);
/* 从栈底到栈顶依次对S的每个数据元素调用函数visit()。一旦vist()失败,则操作失败。*/
StackTraverse(S, visit());
}
栈分两种存储方式:顺序栈和链栈
以下为顺序栈的代码及说明