首页 > 代码库 > 3.1_栈和队列_栈
3.1_栈和队列_栈
【栈的定义】
栈(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
3.1_栈和队列_栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。