This commit is contained in:
krahets
2023-02-28 20:02:48 +08:00
parent 3f5140e815
commit a436f145a1
90 changed files with 753 additions and 4433 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

View File

@ -25,7 +25,7 @@
<title>4.1.   数组Array - Hello 算法</title>
<title>4.1.   数组 - Hello 算法</title>
@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#41-array" class="md-skip">
<a href="#41" class="md-skip">
跳转至
</a>
@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</span>
</div>
@ -661,12 +661,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</a>
@ -728,7 +728,7 @@
<li class="md-nav__item">
<a href="../linked_list/" class="md-nav__link">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</a>
</li>
@ -742,7 +742,7 @@
<li class="md-nav__item">
<a href="../list/" class="md-nav__link">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</a>
</li>
@ -817,7 +817,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. &nbsp;Stack
5.1. &nbsp;
</a>
</li>
@ -831,7 +831,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. &nbsp; 队列Queue
5.2. &nbsp; 队列
</a>
</li>
@ -845,7 +845,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. &nbsp; 双向队列Deque
5.3. &nbsp; 双向队列
</a>
</li>
@ -918,7 +918,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表Hash Map
6.1. &nbsp; 哈希表
</a>
</li>
@ -991,14 +991,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
<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. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1009,7 +1009,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树Binary Tree
7.1. &nbsp; 二叉树
</a>
</li>
@ -1124,7 +1124,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;Heap
8.1. &nbsp;
</a>
</li>
@ -1213,7 +1213,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;Graph
9.1. &nbsp;
</a>
</li>
@ -1702,7 +1702,7 @@
<h1 id="41-array">4.1. &nbsp; 数组Array<a class="headerlink" href="#41-array" title="Permanent link">&para;</a></h1>
<h1 id="41">4.1. &nbsp; 数组<a class="headerlink" href="#41" title="Permanent link">&para;</a></h1>
<p>「数组 Array」是一种将 <strong>相同类型元素</strong> 存储在 <strong>连续内存空间</strong> 的数据结构,将元素在数组中的位置称为元素的「索引 Index」。</p>
<p><img alt="数组定义与存储方式" src="../array.assets/array_definition.png" /></p>
<p align="center"> Fig. 数组定义与存储方式 </p>
@ -2614,13 +2614,13 @@
<a href="../linked_list/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.2. &amp;nbsp; 链表Linked List" rel="next">
<a href="../linked_list/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.2. &amp;nbsp; 链表" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</div>
</div>
<div class="md-footer__button md-icon">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

View File

@ -25,7 +25,7 @@
<title>4.2.   链表Linked List - Hello 算法</title>
<title>4.2.   链表 - Hello 算法</title>
@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#42-linked-list" class="md-skip">
<a href="#42" class="md-skip">
跳转至
</a>
@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</span>
</div>
@ -652,7 +652,7 @@
<li class="md-nav__item">
<a href="../array/" class="md-nav__link">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</a>
</li>
@ -675,12 +675,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</a>
@ -742,7 +742,7 @@
<li class="md-nav__item">
<a href="../list/" class="md-nav__link">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</a>
</li>
@ -817,7 +817,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. &nbsp;Stack
5.1. &nbsp;
</a>
</li>
@ -831,7 +831,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. &nbsp; 队列Queue
5.2. &nbsp; 队列
</a>
</li>
@ -845,7 +845,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. &nbsp; 双向队列Deque
5.3. &nbsp; 双向队列
</a>
</li>
@ -918,7 +918,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表Hash Map
6.1. &nbsp; 哈希表
</a>
</li>
@ -991,14 +991,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
<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. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1009,7 +1009,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树Binary Tree
7.1. &nbsp; 二叉树
</a>
</li>
@ -1124,7 +1124,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;Heap
8.1. &nbsp;
</a>
</li>
@ -1213,7 +1213,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;Graph
9.1. &nbsp;
</a>
</li>
@ -1702,7 +1702,7 @@
<h1 id="42-linked-list">4.2. &nbsp; 链表Linked List<a class="headerlink" href="#42-linked-list" title="Permanent link">&para;</a></h1>
<h1 id="42">4.2. &nbsp; 链表<a class="headerlink" href="#42" title="Permanent link">&para;</a></h1>
<div class="admonition note">
<p class="admonition-title">引言</p>
<p>内存空间是所有程序的公共资源,排除已占用的内存,空闲内存往往是散落在内存各处的。我们知道,存储数组需要内存空间连续,当我们需要申请一个很大的数组时,系统不一定存在这么大的连续内存空间。而链表则更加灵活,不需要内存是连续的,只要剩余内存空间大小够用即可。</p>
@ -2674,7 +2674,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../array/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.1. &amp;nbsp; 数组Array" rel="prev">
<a href="../array/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.1. &amp;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>
@ -2683,20 +2683,20 @@
<span class="md-footer__direction">
上一页
</span>
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</div>
</div>
</a>
<a href="../list/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.3. &amp;nbsp; 列表List" rel="next">
<a href="../list/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.3. &amp;nbsp; 列表" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</div>
</div>
<div class="md-footer__button md-icon">

View File

@ -25,7 +25,7 @@
<title>4.3.   列表List - Hello 算法</title>
<title>4.3.   列表 - Hello 算法</title>
@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#43-list" class="md-skip">
<a href="#43" class="md-skip">
跳转至
</a>
@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</span>
</div>
@ -652,7 +652,7 @@
<li class="md-nav__item">
<a href="../array/" class="md-nav__link">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</a>
</li>
@ -666,7 +666,7 @@
<li class="md-nav__item">
<a href="../linked_list/" class="md-nav__link">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</a>
</li>
@ -689,12 +689,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</a>
@ -803,7 +803,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. &nbsp;Stack
5.1. &nbsp;
</a>
</li>
@ -817,7 +817,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. &nbsp; 队列Queue
5.2. &nbsp; 队列
</a>
</li>
@ -831,7 +831,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. &nbsp; 双向队列Deque
5.3. &nbsp; 双向队列
</a>
</li>
@ -904,7 +904,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表Hash Map
6.1. &nbsp; 哈希表
</a>
</li>
@ -977,14 +977,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
<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. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -995,7 +995,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树Binary Tree
7.1. &nbsp; 二叉树
</a>
</li>
@ -1110,7 +1110,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;Heap
8.1. &nbsp;
</a>
</li>
@ -1199,7 +1199,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;Graph
9.1. &nbsp;
</a>
</li>
@ -1674,7 +1674,7 @@
<h1 id="43-list">4.3. &nbsp; 列表List<a class="headerlink" href="#43-list" title="Permanent link">&para;</a></h1>
<h1 id="43">4.3. &nbsp; 列表<a class="headerlink" href="#43" title="Permanent link">&para;</a></h1>
<p><strong>由于长度不可变,数组的实用性大大降低</strong>。在很多情况下,我们事先并不知道会输入多少数据,这就为数组长度的选择带来了很大困难。长度选小了,需要在添加数据中频繁地扩容数组;长度选大了,又造成内存空间的浪费。</p>
<p>为了解决此问题,诞生了一种被称为「列表 List」的数据结构。列表可以被理解为长度可变的数组因此也常被称为「动态数组 Dynamic Array」。列表基于数组实现继承了数组的优点同时还可以在程序运行中实时扩容。在列表中我们可以自由地添加元素而不用担心超过容量限制。</p>
<h2 id="431">4.3.1. &nbsp; 列表常用操作<a class="headerlink" href="#431" title="Permanent link">&para;</a></h2>
@ -3294,7 +3294,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../linked_list/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.2. &amp;nbsp; 链表Linked List" rel="prev">
<a href="../linked_list/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.2. &amp;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>
@ -3303,7 +3303,7 @@
<span class="md-footer__direction">
上一页
</span>
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</div>
</div>
</a>

View File

@ -652,7 +652,7 @@
<li class="md-nav__item">
<a href="../array/" class="md-nav__link">
4.1. &nbsp; 数组Array
4.1. &nbsp; 数组
</a>
</li>
@ -666,7 +666,7 @@
<li class="md-nav__item">
<a href="../linked_list/" class="md-nav__link">
4.2. &nbsp; 链表Linked List
4.2. &nbsp; 链表
</a>
</li>
@ -680,7 +680,7 @@
<li class="md-nav__item">
<a href="../list/" class="md-nav__link">
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</a>
</li>
@ -765,7 +765,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. &nbsp;Stack
5.1. &nbsp;
</a>
</li>
@ -779,7 +779,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. &nbsp; 队列Queue
5.2. &nbsp; 队列
</a>
</li>
@ -793,7 +793,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. &nbsp; 双向队列Deque
5.3. &nbsp; 双向队列
</a>
</li>
@ -866,7 +866,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表Hash Map
6.1. &nbsp; 哈希表
</a>
</li>
@ -939,14 +939,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
<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. &nbsp; &nbsp; 二叉
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -957,7 +957,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树Binary Tree
7.1. &nbsp; 二叉树
</a>
</li>
@ -1072,7 +1072,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;Heap
8.1. &nbsp;
</a>
</li>
@ -1161,7 +1161,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;Graph
9.1. &nbsp;
</a>
</li>
@ -1767,7 +1767,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../list/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.3. &amp;nbsp; 列表List" rel="prev">
<a href="../list/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.3. &amp;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>
@ -1776,20 +1776,20 @@
<span class="md-footer__direction">
上一页
</span>
4.3. &nbsp; 列表List
4.3. &nbsp; 列表
</div>
</div>
</a>
<a href="../../chapter_stack_and_queue/stack/" class="md-footer__link md-footer__link--next" aria-label="下一页: 5.1. &amp;nbsp; 栈Stack" rel="next">
<a href="../../chapter_stack_and_queue/stack/" class="md-footer__link md-footer__link--next" aria-label="下一页: 5.1. &amp;nbsp; 栈" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
5.1. &nbsp;Stack
5.1. &nbsp;
</div>
</div>
<div class="md-footer__button md-icon">