[LeetCode训练营]栈

一、栈的介绍

栈(Stack):也称为堆栈。一种线性表数据结构,是一种只允许在表的一端进行插入和删除操作的线性表
在这里插入图片描述
我们把栈中允许插入和删除的一端称为「栈顶(top)」;另一端则称为「栈底(bottom)」。当表中没有任何数据元素时,称之为「空栈」。
堆栈有两种基本操作:「插入操作」和「删除操作」

  • 栈的插入操作又称为「入栈」或者「进栈」
  • 栈的删除操作又称为「出栈」或者「退栈」

二、栈的定义

  • 线性表
    栈中元素按照 a1, a2, ···, an 的次序依次进栈。栈顶元素为 an。
  • 后进先出原则
    每次删除的总是堆栈中当前的栈顶元素,即最后进入堆栈的元素。
    而在进栈时,最先进入堆栈的元素一定在栈底,最后进入堆栈的元素一定在栈顶。

三、栈的存储

  • 顺序栈(使用列表)
    利用一组地址连续的存储单元依次存放自栈底到栈顶的元素,同时使用指针 top 指示栈顶元素在顺序栈中的位置。
  • 链式栈(使用单链表)
    利用单链表的方式来实现堆栈。栈中元素按照插入顺序依次插入到链表的第一个节点之前,并使用栈顶指针 top 指示栈顶元素,top 永远指向链表的头节点位置。

本文章主要内容摘自阿里云天池leetcode训练营,主要当作笔记记录,如有错误的地方或者有没写完的地方,请见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值