mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 03:30:30 +08:00
deploy
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
|
||||
<title>5.1. 栈(Stack) - Hello 算法</title>
|
||||
<title>5.1. 栈(Stack) - Hello 算法</title>
|
||||
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
5.1. 栈(Stack)
|
||||
5.1. 栈(Stack)
|
||||
|
||||
</span>
|
||||
</div>
|
||||
@@ -268,14 +268,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
||||
0. 写在前面
|
||||
0. 写在前面
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_1">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
0. 写在前面
|
||||
0. 写在前面
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_preface/about_the_book/" class="md-nav__link">
|
||||
0.1. 关于本书
|
||||
0.1. 关于本书
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -300,7 +300,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_preface/suggestions/" class="md-nav__link">
|
||||
0.2. 如何使用本书
|
||||
0.2. 如何使用本书
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_preface/installation/" class="md-nav__link">
|
||||
0.3. 编程环境安装
|
||||
0.3. 编程环境安装
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_preface/contribution/" class="md-nav__link">
|
||||
0.4. 一起参与创作
|
||||
0.4. 一起参与创作
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -367,14 +367,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
||||
1. 引言
|
||||
1. 引言
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_2">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
1. 引言
|
||||
1. 引言
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -385,7 +385,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
|
||||
1.1. 算法无处不在
|
||||
1.1. 算法无处不在
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -399,7 +399,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
|
||||
1.2. 算法是什么
|
||||
1.2. 算法是什么
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -444,14 +444,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
2. 计算复杂度
|
||||
2. 计算复杂度
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
2. 计算复杂度
|
||||
2. 计算复杂度
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -462,7 +462,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
|
||||
2.1. 算法效率评估
|
||||
2.1. 算法效率评估
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
|
||||
2.2. 时间复杂度
|
||||
2.2. 时间复杂度
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -490,7 +490,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
|
||||
2.3. 空间复杂度
|
||||
2.3. 空间复杂度
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -504,7 +504,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_computational_complexity/space_time_tradeoff/" class="md-nav__link">
|
||||
2.4. 权衡时间与空间
|
||||
2.4. 权衡时间与空间
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -518,7 +518,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
|
||||
2.5. 小结
|
||||
2.5. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -559,14 +559,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
3. 数据结构简介
|
||||
3. 数据结构简介
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
3. 数据结构简介
|
||||
3. 数据结构简介
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -577,7 +577,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_data_structure/data_and_memory/" class="md-nav__link">
|
||||
3.1. 数据与内存
|
||||
3.1. 数据与内存
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -591,7 +591,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
|
||||
3.2. 数据结构分类
|
||||
3.2. 数据结构分类
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -605,7 +605,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
|
||||
3.3. 小结
|
||||
3.3. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -648,14 +648,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
||||
4. 数组与链表
|
||||
4. 数组与链表
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_5">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
4. 数组与链表
|
||||
4. 数组与链表
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -666,7 +666,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
|
||||
4.1. 数组(Array)
|
||||
4.1. 数组(Array)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -680,7 +680,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
|
||||
4.2. 链表(LinkedList)
|
||||
4.2. 链表(LinkedList)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -694,7 +694,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
|
||||
4.3. 列表(List)
|
||||
4.3. 列表(List)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -708,7 +708,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
|
||||
4.4. 小结
|
||||
4.4. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -753,14 +753,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
|
||||
5. 栈与队列
|
||||
5. 栈与队列
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_6">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
5. 栈与队列
|
||||
5. 栈与队列
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -780,12 +780,12 @@
|
||||
|
||||
|
||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||||
5.1. 栈(Stack)
|
||||
5.1. 栈(Stack)
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<a href="./" class="md-nav__link md-nav__link--active">
|
||||
5.1. 栈(Stack)
|
||||
5.1. 栈(Stack)
|
||||
</a>
|
||||
|
||||
|
||||
@@ -805,17 +805,17 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#511" class="md-nav__link">
|
||||
5.1.1. 栈常用操作
|
||||
5.1.1. 栈常用操作
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#512" class="md-nav__link">
|
||||
5.1.2. 栈的实现
|
||||
5.1.2. 栈的实现
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="5.1.2. 栈的实现">
|
||||
<nav class="md-nav" aria-label="5.1.2. 栈的实现">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -839,10 +839,10 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#513" class="md-nav__link">
|
||||
5.1.3. 两种实现对比
|
||||
5.1.3. 两种实现对比
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="5.1.3. 两种实现对比">
|
||||
<nav class="md-nav" aria-label="5.1.3. 两种实现对比">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -873,7 +873,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#514" class="md-nav__link">
|
||||
5.1.4. 栈典型应用
|
||||
5.1.4. 栈典型应用
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -894,7 +894,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../queue/" class="md-nav__link">
|
||||
5.2. 队列(Queue)
|
||||
5.2. 队列(Queue)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -908,7 +908,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../deque/" class="md-nav__link">
|
||||
5.3. 双向队列(Deque)
|
||||
5.3. 双向队列(Deque)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -922,7 +922,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../summary/" class="md-nav__link">
|
||||
5.4. 小结
|
||||
5.4. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -963,14 +963,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
||||
6. 散列表
|
||||
6. 散列表
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_7">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
6. 散列表
|
||||
6. 散列表
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -981,7 +981,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
|
||||
6.1. 哈希表(HashMap)
|
||||
6.1. 哈希表(HashMap)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -995,7 +995,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
|
||||
6.2. 哈希冲突处理
|
||||
6.2. 哈希冲突处理
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1009,7 +1009,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_hashing/summary/" class="md-nav__link">
|
||||
6.3. 小结
|
||||
6.3. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1054,14 +1054,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||
7. 二叉树
|
||||
7. 二叉树
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_8">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
7. 二叉树
|
||||
7. 二叉树
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1072,7 +1072,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
|
||||
7.1. 二叉树(Binary Tree)
|
||||
7.1. 二叉树(Binary Tree)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1086,7 +1086,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
|
||||
7.2. 二叉树遍历
|
||||
7.2. 二叉树遍历
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1100,7 +1100,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
|
||||
7.3. 二叉搜索树
|
||||
7.3. 二叉搜索树
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1114,7 +1114,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
|
||||
7.4. AVL 树 *
|
||||
7.4. AVL 树 *
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1128,7 +1128,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_tree/summary/" class="md-nav__link">
|
||||
7.5. 小结
|
||||
7.5. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1165,14 +1165,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
|
||||
8. 堆
|
||||
8. 堆
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_9">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
8. 堆
|
||||
8. 堆
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1183,7 +1183,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_heap/heap/" class="md-nav__link">
|
||||
8.1. 堆(Heap)
|
||||
8.1. 堆(Heap)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1224,14 +1224,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
|
||||
9. 图
|
||||
9. 图
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_10">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
9. 图
|
||||
9. 图
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1242,7 +1242,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_graph/graph/" class="md-nav__link">
|
||||
9.1. 图(Graph)
|
||||
9.1. 图(Graph)
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1256,7 +1256,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
|
||||
9.2. 图基础操作
|
||||
9.2. 图基础操作
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1270,7 +1270,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
|
||||
9.3. 图的遍历
|
||||
9.3. 图的遍历
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1313,14 +1313,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
|
||||
10. 查找算法
|
||||
10. 查找算法
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_11">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
10. 查找算法
|
||||
10. 查找算法
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1331,7 +1331,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_searching/linear_search/" class="md-nav__link">
|
||||
10.1. 线性查找
|
||||
10.1. 线性查找
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1345,7 +1345,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
|
||||
10.2. 二分查找
|
||||
10.2. 二分查找
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1359,7 +1359,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_searching/hashing_search/" class="md-nav__link">
|
||||
10.3. 哈希查找
|
||||
10.3. 哈希查找
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1373,7 +1373,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_searching/summary/" class="md-nav__link">
|
||||
10.4. 小结
|
||||
10.4. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1420,14 +1420,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
|
||||
11. 排序算法
|
||||
11. 排序算法
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_12">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
11. 排序算法
|
||||
11. 排序算法
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1438,7 +1438,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/intro_to_sort/" class="md-nav__link">
|
||||
11.1. 排序简介
|
||||
11.1. 排序简介
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1452,7 +1452,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
|
||||
11.2. 冒泡排序
|
||||
11.2. 冒泡排序
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1466,7 +1466,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
|
||||
11.3. 插入排序
|
||||
11.3. 插入排序
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1480,7 +1480,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
|
||||
11.4. 快速排序
|
||||
11.4. 快速排序
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1494,7 +1494,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
|
||||
11.5. 归并排序
|
||||
11.5. 归并排序
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1508,7 +1508,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_sorting/summary/" class="md-nav__link">
|
||||
11.6. 小结
|
||||
11.6. 小结
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1596,17 +1596,17 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#511" class="md-nav__link">
|
||||
5.1.1. 栈常用操作
|
||||
5.1.1. 栈常用操作
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#512" class="md-nav__link">
|
||||
5.1.2. 栈的实现
|
||||
5.1.2. 栈的实现
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="5.1.2. 栈的实现">
|
||||
<nav class="md-nav" aria-label="5.1.2. 栈的实现">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -1630,10 +1630,10 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#513" class="md-nav__link">
|
||||
5.1.3. 两种实现对比
|
||||
5.1.3. 两种实现对比
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="5.1.3. 两种实现对比">
|
||||
<nav class="md-nav" aria-label="5.1.3. 两种实现对比">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -1664,7 +1664,7 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#514" class="md-nav__link">
|
||||
5.1.4. 栈典型应用
|
||||
5.1.4. 栈典型应用
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -1693,14 +1693,14 @@
|
||||
|
||||
|
||||
|
||||
<h1 id="51">5.1. 栈<a class="headerlink" href="#51" title="Permanent link">¶</a></h1>
|
||||
<h1 id="51">5.1. 栈<a class="headerlink" href="#51" title="Permanent link">¶</a></h1>
|
||||
<p>「栈 Stack」是一种遵循「先入后出 first in, last out」数据操作规则的线性数据结构。我们可以将栈类比为放在桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。</p>
|
||||
<p>“盘子”是一种形象比喻,我们将盘子替换为任意一种元素(例如整数、字符、对象等),就得到了栈数据结构。</p>
|
||||
<p>我们将这一摞元素的顶部称为「栈顶」,将底部称为「栈底」,将把元素添加到栈顶的操作称为「入栈」,将删除栈顶元素的操作称为「出栈」。</p>
|
||||
<p><img alt="stack_operations" src="../stack.assets/stack_operations.png" /></p>
|
||||
<p align="center"> Fig. 栈的先入后出特性 </p>
|
||||
|
||||
<h2 id="511">5.1.1. 栈常用操作<a class="headerlink" href="#511" title="Permanent link">¶</a></h2>
|
||||
<h2 id="511">5.1.1. 栈常用操作<a class="headerlink" href="#511" title="Permanent link">¶</a></h2>
|
||||
<p>栈的常用操作见下表(方法命名以 Java 为例)。</p>
|
||||
<p align="center"> Table. 栈的常用操作 </p>
|
||||
|
||||
@@ -1954,7 +1954,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="512">5.1.2. 栈的实现<a class="headerlink" href="#512" title="Permanent link">¶</a></h2>
|
||||
<h2 id="512">5.1.2. 栈的实现<a class="headerlink" href="#512" title="Permanent link">¶</a></h2>
|
||||
<p>为了更加清晰地了解栈的运行机制,接下来我们来自己动手实现一个栈类。</p>
|
||||
<p>栈规定元素是先入后出的,因此我们只能在栈顶添加或删除元素。然而,数组或链表都可以在任意位置添加删除元素,因此 <strong>栈可被看作是一种受约束的数组或链表</strong>。换言之,我们可以“屏蔽”数组或链表的部分无关操作,使之对外的表现逻辑符合栈的规定即可。</p>
|
||||
<h3 id="_1">基于链表的实现<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
|
||||
@@ -2964,7 +2964,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="513">5.1.3. 两种实现对比<a class="headerlink" href="#513" title="Permanent link">¶</a></h2>
|
||||
<h2 id="513">5.1.3. 两种实现对比<a class="headerlink" href="#513" title="Permanent link">¶</a></h2>
|
||||
<h3 id="_3">支持操作<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
|
||||
<p>两种实现都支持栈定义中的各项操作,数组实现额外支持随机访问,但这已经超出栈的定义范畴,一般不会用到。</p>
|
||||
<h3 id="_4">时间效率<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
|
||||
@@ -2979,7 +2979,7 @@
|
||||
<p>在初始化列表时,系统会给列表分配“初始容量”,该容量可能超过我们的需求。并且扩容机制一般是按照特定倍率(比如 2 倍)进行扩容,扩容后的容量也可能超出我们的需求。因此,<strong>数组实现栈会造成一定的空间浪费</strong>。</p>
|
||||
<p>当然,由于结点需要额外存储指针,因此 <strong>链表结点比数组元素占用更大</strong>。</p>
|
||||
<p>综上,我们不能简单地确定哪种实现更加省内存,需要 case-by-case 地分析。</p>
|
||||
<h2 id="514">5.1.4. 栈典型应用<a class="headerlink" href="#514" title="Permanent link">¶</a></h2>
|
||||
<h2 id="514">5.1.4. 栈典型应用<a class="headerlink" href="#514" title="Permanent link">¶</a></h2>
|
||||
<ul>
|
||||
<li><strong>浏览器中的后退与前进、软件中的撤销与反撤销</strong>。每当我们打开新的网页,浏览器就将上一个网页执行入栈,这样我们就可以通过「后退」操作来回到上一页面,后退操作实际上是在执行出栈。如果要同时支持后退和前进,那么则需要两个栈来配合实现。</li>
|
||||
<li><strong>程序内存管理</strong>。每当调用函数时,系统就会在栈顶添加一个栈帧,用来记录函数的上下文信息。在递归函数中,向下递推会不断执行入栈,向上回溯阶段时出栈。</li>
|
||||
@@ -3061,7 +3061,7 @@
|
||||
<nav class="md-footer__inner md-grid" aria-label="页脚" >
|
||||
|
||||
|
||||
<a href="../../chapter_array_and_linkedlist/summary/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.4. 小结" rel="prev">
|
||||
<a href="../../chapter_array_and_linkedlist/summary/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.4. &nbsp; 小结" rel="prev">
|
||||
<div class="md-footer__button md-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||||
</div>
|
||||
@@ -3070,20 +3070,20 @@
|
||||
<span class="md-footer__direction">
|
||||
上一页
|
||||
</span>
|
||||
4.4. 小结
|
||||
4.4. 小结
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="../queue/" class="md-footer__link md-footer__link--next" aria-label="下一页: 5.2. 队列(Queue)" rel="next">
|
||||
<a href="../queue/" class="md-footer__link md-footer__link--next" aria-label="下一页: 5.2. &nbsp; 队列(Queue)" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
下一页
|
||||
</span>
|
||||
5.2. 队列(Queue)
|
||||
5.2. 队列(Queue)
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
Reference in New Issue
Block a user