零、前言
该章节节选自 《画解数据结构》,主要讲解一种常用的线性数据结构 —— 栈的概念,当然,如果已经对本套体验课了如指掌,那么可以通过 算法全套课程 联系到我,领取限时全套课程优惠。
「 数据结构 」 和 「 算法 」 是密不可分的,两者往往是「 相辅相成 」的存在,所以,在学习 「 数据结构 」 的过程中,不免会遇到各种「 算法 」。
到底是先学 数据结构 ,还是先学 算法,我认为不必纠结这个问题,一定是一起学的。
数据结构 常用的操作一般为:「 增 」「 删 」「 改 」「 查 」。基本上所有的数据结构都是围绕这几个操作进行展开的。
那么这篇文章,作者将用 「 九张动图 」 来阐述一种 「 后进先出 」 的数据结构
「 栈 」
![]()
栈可以用 顺序表 实现,也可以用 链表 实现,浓缩为以下两张图:
![]()
![]()
看不懂没有关系,我会把它拆开来一个一个讲,首先来看一下今天要学习的内容目录。
一、概念
1、栈的定义
栈 是仅限在 表尾 进行 插入 和 删除 的 线性表。
栈 又被称为 后进先出 (Last In First Out) 的线性表,简称 LIFO 。
2、栈顶
栈 是一个线性表,我们把允许 插入 和 删除 的一端称为 栈顶。

3、栈底
和 栈顶 相对,另一端称为 栈底,实际上,栈底的元素我们不需要关心。

本文深入探讨了栈这一数据结构,详细解释了栈的定义、栈顶和栈底的概念,并介绍了栈的两种实现方式:顺序表和链表。文中通过动画和源码解析展示了入栈、出栈、清空栈等操作。此外,还讨论了两种实现的优缺点,以及栈在逆序链表、括号匹配等实际问题中的应用。
订阅专栏 解锁全文
6579

被折叠的 条评论
为什么被折叠?



