一、栈的定义
栈是一类操作受限制的线性表,其特殊性在于限制了插入和删除等操作的位置。
栈作为一种限定性线性表,将线性表的插入和删除操作限制为仅在线性表的一端进行,通常将表中允许插入和删除
操作的一端称为栈顶,而另一端称为栈底。当栈中没有元素时,称为空栈。
栈的特性:后进先出。
抽象数据类型定义:
(1)InitStack(S)
将栈S初始化为空栈
(2)ClearStack(S)
将栈S置为空栈
(3)IsEmpty(S)
判断栈是否为空。若S为空栈,则返回TRUE,否则 返回FALSE
(4)IsFull(S)
判断栈是否满栈。如果S为满栈,则返回TRUE,否 则返回FALSE
(5)Push(S,x)
在栈S的顶部插入元素x。若栈未满,则将x插入栈顶位置,并返回TRUE,若栈已满,则返回FALSE,
表示操作失败。
(6)Pop(S,x)
删除栈S的顶部元素,并用x带回该值,返回TRUE;若栈为空,返回FALSE,表示操作失败。
(7)GetTop(S,x)
取栈S的顶部元素赋给x所指向的单元,也成读取栈顶元素。与Pop不同之处在于GetTop不改变栈顶的位置。
若栈为空,则返回FALSE,表示操作失败。