数据结构 —— 栈

本文深入探讨栈这一数据结构,包括栈的概念、顺序栈和链栈的表示与实现。栈是一种只允许在表尾进行插入和删除的线性表,分为栈顶和栈底。顺序栈通过top和base指针管理元素,链栈则以链表头部为栈顶,无需额外的存储空间管理。文章详细阐述了栈的入栈、出栈操作以及各种特殊情况的处理,如栈满和栈空的情况。
摘要由CSDN通过智能技术生成

栈的概念

栈(stack):只允许在表尾进行插入和删除的一种线性表
栈顶(top):只允许进行插入和删除的一端
栈底(bottom):固定的一端

在这里插入图片描述
入栈:a1➡a2➡a3➡a4➡a5

出栈:a5➡a4➡a3➡a2➡a1

把空的线性表当作一个空瓶子,将水从瓶口倒入空瓶的操作称作"入栈(push)",将瓶中的水从瓶口倒出的操作称为"出栈(pop)"
 
 

顺序栈的表示和实现

在这里插入图片描述

  • top指针,指示栈顶元素在顺序栈中的位置
  • base指针,指示栈底元素在顺序栈中的位置
  • stacksize表示栈可使用的最大容量
     
    在这里插入图片描述
    空栈base == top
     
    在这里插入图片描述
    栈满:top - base == stacksize
     

栈满时的处理方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值