栈的顺序存储结构

栈的定义:

栈是一个后进先出的线性表,它要求只在表尾进行删除和插入操作。

所谓栈是一种特殊的线性表(顺序表和链表),但是它在操作上有一些特殊的要求和限制:

栈的元素必须后进先出;

栈的操作只能在这个线性表的表尾进行;

对于栈来说,这个表尾称为栈的栈顶;相应的表头称为栈底;

栈的插入操作,称作进栈,也称为压栈;

栈的出栈称为出栈,或者弹栈;

栈的顺序存储结构:

因为栈的本质是一个线性表,线性表有两种存储形式,那么栈有也有两种分为栈的顺序存储结构和栈的链式存储结构;

最开始,栈中不含有任何数据,叫做空栈,此时栈顶就是栈底;然后数据从栈底进入,栈顶栈底分离,栈的容量变大;数据出栈时从栈顶弹出,整个栈的容量变小。


栈结构

栈底是低地址,栈顶是高地址。


数据结构


压栈

注意:top和base都是指针,top指向栈顶,base指向栈底。当top和base的指针相同时,为空栈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 5,446评论 0 5
  • 栈和队列是两种应用非常广泛的数据结构,它们都来自线性表数据结构,都是“操作受限”的线性表。 栈 栈(Stack):...
    karlsu阅读 3,978评论 0 1
  • 二、栈和队列 栈和队列都是线性结构,它们是操作受限的线性表,即它们的操作是线性表操作的子集。因此也可以用线性表在某...
    MinoyJet阅读 3,276评论 0 1
  • 最近有两件事情在微博炒的沸沸扬扬。一件是靳东在微博上暗怼金星,称“本人是一纯爷们,纯爷们就爱跟纯爷们合作。刚烈、简...
    踏雪尘埃阅读 2,839评论 0 1
  • 如果问在物流创业里面什么最难,我认为不是产品难开发、也不是客户难谈、更不是缺乏资金,而是思维方式的改变,这本是一个...
    孙邻家阅读 3,153评论 0 8

友情链接更多精彩内容