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

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

本文通过九张动图详细介绍了栈的概念、接口、顺序表和链表两种实现方式,以及栈的优缺点,包括入栈、出栈、获取栈顶数据、栈的判空等操作,并给出了C语言实现的源码。此外,还提供了栈的应用实例,如逆序链表、括号匹配等。
订阅专栏 解锁全文
9923

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



