0
点赞
收藏
分享

微信扫一扫

数据结构日记之《栈的定义》

栈的定义

一、栈的定义和特点

栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。 因此, 对栈来说, 表尾端有其特殊含义, 称为栈顶 (top), 相应地, 表头端称为栈底 (bottom)。 不含元素的空表称为空栈。假设栈 S = (a1, a2, …,an, 则称 a1为栈底元素, an为栈顶元素。栈中元素按 a1, a2, ···, an的次序进栈, 退栈的第一个元素应为栈顶元素。 换句话说, 栈的修改是按后进先出的原则进行的, 如 图 (a) 所示。 因此, 栈又称为后进先出 (Last In First Out, LIFO) 的线性表。
在这里插入图片描述

二、栈的抽象数据类型定义

操作函数名初始条件操作结果
InitStack(&S)-操作结果:构造一个空栈s。 DestroyStack(&S)
DestroyStack(&S)栈s巳存在。栈S被销毁。
ClearStack(&S)栈S已存在。将S清为空栈。
StackEmpty(S)栈S巳存在。若栈 s 为空栈, 则返回 true, 否则返回 false。
StackLength (S)栈S已存在。返回s的元素个数, 即栈的长度。
GetTop(S)栈S已存在且非空。返回s的栈顶元素, 不修改栈顶指针。
Push(&S,e)栈S已存在插入元素e为新的栈顶元素。
Pop(&S,&e)栈s已存在且非空。删除S的栈顶元素,并用e返回其值。
StackTraverse(S)栈S已存在且非空。从栈底到栈顶依次对S的每个数据元素进行访问。
举报

相关推荐

0 条评论