logo
Algorithms study cheatsheets

Coding interview 的 Stack cheatsheet

Stack 学习指南,包含练习题、技巧、时间复杂度与推荐资源

Introduction

Stack 是一种抽象数据类型,支持 push(把元素压到栈顶)和 pop(移除并返回最近加入的元素,也就是栈顶)。Stack 可用 array 或 singly linked list 实现。

这种行为叫 LIFO(last in, first out)。名字来自现实中物品“叠在一起”的形象。

Stack 是支持嵌套/递归调用的重要结构,也是 DFS 的基础。DFS 可以用 recursion,也可以用手动 stack。

Learning resources

Implementations

LanguageAPI
C++std::stack
Javajava.util.Stack
PythonList 模拟
JavaScriptArray 模拟

Time complexity

OperationBig-O
Top/PeekO(1)
PushO(1)
PopO(1)
isEmptyO(1)
SearchO(n)

Corner cases

  • Empty stack(从空栈 pop)
  • 只有 1 个元素
  • 只有 2 个元素

Essential questions

该 topic 必练题。

在掌握基础后推荐练习。

检测你的掌握度

3
1/3

Q1. Stack 的基本操作原则是?

相关练习题

Coding interview 的 Stack cheatsheet

暂无相关练习题