Data structure and Algorithm
  • 序言
  • 大O表示法
  • 递归
  • 线性表
    • 数组
    • 链表
    • 栈
    • 队列
  • 散列表
    • 哈希表
  • 树
    • 简介
    • 前缀树(字典树)
    • 二叉树
  • 图
    • 广度优先搜索
    • 狄克斯特拉算法
  • 算法-查找
    • 二分查找
    • K最近邻算法
    • 贪婪算法
    • 动态规划算法
  • 算法-排序
    • 交换类排序法
    • 插入类排序法
  • 算法-搜索
    • Untitled
  • 算法-复杂度分析
    • Untitled
  • 算法-字符串匹配
    • Untitled
    • Untitled
  • 算法-基本算法思想
    • 其他算法
Powered by GitBook
On this page
  • 概念解释
  • 栈的基本操作
  • 常见的栈代码面试题

Was this helpful?

  1. 线性表

栈

Previous链表Next队列

Last updated 6 years ago

Was this helpful?

概念解释

撤回,即Ctrl+Z,是我们最常见的操作之一,大多数应用都会支持这个功能。你知道它是怎么实现的吗?答案是这样的:把之前的应用状态(限制个数)保存到内存中,最近的状态放到第一个。这时,我们需要栈(stack)来实现这个功能。

栈中的元素采用LIFO (Last In First Out),即后进先出。

下图的栈有3个元素,3在最上面,因此它会被第一个移除:

栈的基本操作

  • Push — 在栈的最上方插入元素

  • Pop — 返回栈最上方的元素,并将其删除

  • isEmpty — 查询栈是否为空

  • Top — 返回栈最上方的元素,并不删除

常见的栈代码面试题

使用栈计算后缀表达式
使用栈为栈中的元素排序
检查字符串中的括号是否匹配正确