汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-08-13 09:38]

栈是受限的线性表它和线性表的逻辑结构完全相同,不同的是线性表允许在任何位置进行插入和删除的操作,而栈只能在一端进行插入和删除操作。允许惊醒插入和删除操作的一端称为栈顶,另一端称为栈底。为了操作方便,通常用一个栈顶指针top指向栈顶位置。在栈顶进行的插入操作称为入栈或进栈,在栈顶进行的删除操作称为出栈或退栈。
       入栈 ---|   | --> 出栈
               V   |           
              |     |
              |-----|
              | a   |栈顶
              |-----|
              | b   |
              |-----|
              | c   |栈底
              ------- 
当栈中没有数据元素的时候,称为空栈。栈的特点是“先进后出”(Last in First out,LIFO),即后入栈的元素先出栈。因此栈又称为后进先出的线性表。

栈的抽象数据模型
栈的抽象数据模型表示了栈中的数据元素,数据元素之间的逻辑关系,以及对栈的操作集合。其定义如下:
ADT stack
数据元素集合:
        具有相同性质数据元素的一个有限序列,且只能在称为栈顶的一端进行插入和删除操作。
基本操作:
        初始化    :初始化栈
        求栈长    :获取栈中元素个数
        入栈      :在栈顶插入新的数据元素
        出栈      :在栈顶删除数据元素
        取栈顶元素:获取栈顶的数据元素值
        判断栈空  :判断所给的栈是否为空
        栈清空    :清空栈中元素
        销毁栈    :销毁栈

栈的顺序存储表示称为顺序栈。 与线性表类似,可以用一维数组来表示栈,用指针指向栈顶元素在顺序栈中的位置。
评论次数(0)  |  浏览次数(532)  |  类型(数据结构笔记) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码