栈的基本概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈的基本概念相关的知识,希望对你有一定的参考价值。

   什么是栈呢?栈是一种采用“后进先出”策略的数据结构类型。其本质意义也是线性表的一种,不过是一种特殊的线性表。栈顶记做,top,栈底记做,bottom。

   栈有一个非常非常重要的一个特点:只允许在栈顶进行数据元素的插入或删除操作。根据这一特点我们可知,栈基本上只有两种操作,一是插入操作,另一个是删除操作。栈的插入操作也称为:进栈,压栈,入栈。栈的删除操作也称为,出栈,弹栈。英文记做,push(压栈),pop(弹栈)。“后进先出”策略英文记为,“LIFO”,Last In First Out。

   栈的抽象数据类型,摘自书本。如下:

ADT 栈 (stack)
Data
    同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系。
Operation
    InitStack ( *S )       : 初始化操作,建立一个空栈S。
    DestroyStack ( *S )    : 若栈存在,则销毁它。
    ClearStack ( *S )      : 将栈清空。
    StackEmpty ( S )       : 若栈为空,返回true,否则返回false。
    GetTop ( S, *e )       : 若栈存在且非空,用e返回S的栈顶元素。
    Push ( *S, e )         : 若栈S存在,插入新元素e到栈S中并成为栈顶元素。
    Pop ( *S, *e )         : 删除栈s中栈顶元素,并且e返回其值。
    StackLength ( S )      : 返回栈S的元素个数
    
endADT


本文出自 “梵高说我脑子有病” 博客,请务必保留此出处http://chen0547.blog.51cto.com/12489941/1967278

以上是关于栈的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

堆和栈的基本概念

数据结构栈的基本概念 | 从零开始实现数组栈 | 画图解析 | 数组栈与链式栈

第三节1:Java集合框架之栈Stack

数据结构3. 栈和队列

堆栈的定义和两种存储结构下堆栈的基本操作

"栈"和"栈帧"这两个概念到底如何区分