标签:mda 插入 关系 blog opera 技术分享 抽象 ash dash
【栈的定义】
栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
栈又称为后进先出(Last In First Out)线性表,简称LIFO结构。
(PS:定义中的表尾是指 栈顶!)
【几个关键词 】
[ 栈顶(top) ]
允许插入和删除的一端称为 栈顶。
[ 栈底(bottom) ]
栈顶的另一端称为 栈底。
[ 空栈 ]
不含任何数据元素的栈。
【栈的插入操作——进栈(push)】
栈的插入操作,叫做进栈,也称为压栈、入栈。
【栈的删除操作——出栈(pop)】
栈的删除操作,叫做出栈,也称为弹栈。
【进栈出栈的变化形式】
如果3个整数1,2,3依次入栈,会有哪些出栈次序?
第一种:1-2-3进栈,即3-2-1出栈。
第二种:1进,1出,2斤,2出,3进,3出,进一个出一个,即1-2-3出栈。
第三种:1进,2进,2出,1出,3进,3出,即2-1-3出栈。
第四种:1进,1出,2进,3进,3出,2出,即1-3-2出栈。
第四种:1进,2进,2出,3进,3出,2出,即2-3-1出栈
【栈的抽象数据类型】
ADT 栈(stack)
Data
同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系。
Operation
InitStack(*S) 初始化操作,建立一个空栈S
DestoryStack(*S) 若栈存在,则销毁它
ClearStack(*S) 将栈清空
StackEmpty(S) 若栈为空,返回true,否则返回false。
GetTop(S,*e) 若栈S存在且非空,用e返回S的栈顶元素。
Push(*S,e) 若栈S存在,插入新元素e到栈S中并成为栈顶元素。
Pop(*S,*e) 删除栈S中栈顶元素,并用e返回其值。
StackLength(S) 返回栈S的元素个数。
endADT
标签:mda 插入 关系 blog opera 技术分享 抽象 ash dash
原文地址:http://www.cnblogs.com/HigginCui/p/6095247.html