码迷,mamicode.com
首页 > 其他好文 > 详细

3.1_栈和队列_栈

时间:2016-11-23 23:13:46      阅读:221      评论:0      收藏:0      [点我收藏+]

标签: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

 

3.1_栈和队列_栈

标签:mda   插入   关系   blog   opera   技术分享   抽象   ash   dash   

原文地址:http://www.cnblogs.com/HigginCui/p/6095247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!