mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-04-05 11:38:27 +08:00
feat: 优化lint校验、markdown文档更新、脚本修改等
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -37,3 +37,4 @@ docs/.vuepress/dist/
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
/.husky/
|
||||
/.vercel/
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* 参考: https://www.npmjs.com/package/lint-staged#configuration
|
||||
*/
|
||||
module.exports = {
|
||||
"*.{js,ts,md}":[
|
||||
"*.{js,ts,md}": [
|
||||
"./scripts/lint --fix",
|
||||
// "git add"
|
||||
"./scripts/mark-map"
|
||||
]
|
||||
}
|
||||
30
README.md
30
README.md
@@ -15,10 +15,10 @@
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://app.netlify.com/sites/408-family/deploys" target="_blank" style="padding: 5px">
|
||||
<a href="https://408-family.netlify.app" target="_blank" style="padding: 5px">
|
||||
<img alt="Netlify" src="https://api.netlify.com/api/v1/badges/75a7251a-f873-4aff-b387-6449ca241ef7/deploy-status">
|
||||
</a>
|
||||
<a href="" target="_blank" style="padding: 5px">
|
||||
<a href="https://408-family.vercel.app" target="_blank" style="padding: 5px">
|
||||
<img alt="Vercel" src="https://therealsujitk-vercel-badge.vercel.app/?app=408">
|
||||
</a>
|
||||
</div>
|
||||
@@ -54,12 +54,6 @@
|
||||
- Netlify: <https://408-family.netlify.app>
|
||||
- Vercel: <https://408-family.vercel.app>
|
||||
|
||||
[//]: # (## 思维导图【MD文档版本】)
|
||||
[//]: # (- [数据结构](./manuscripts/数据结构/数据结构和算法.md))
|
||||
[//]: # (- 计算机组成原理(TBD))
|
||||
[//]: # (- 操作系统(TBD))
|
||||
[//]: # (- 计算机网络(TBD))
|
||||
|
||||
## 学习资料
|
||||
|
||||
### 电子书PDF - 王道
|
||||
@@ -284,10 +278,10 @@
|
||||
|
||||
<div>
|
||||
<a href="https://github.com/ChiefPing" target="_blank" style="margin: 5px">
|
||||
<img src="https://avatars2.githubusercontent.com/u/34122068?s=460&v=4" width="50px" style="brder-radius:5px;"/>
|
||||
<img src="https://avatars2.githubusercontent.com/u/34122068?s=460&v=4" alt="ChiefPing" style="border-radius:5px;" width="50px" />
|
||||
</a>
|
||||
<a href="https://github.com/xiaoliuxin" target="_blank" style="margin: 5px">
|
||||
<img src="https://avatars2.githubusercontent.com/u/60652527?s=460&v=4" style="border-radius:5px;" width="50px"/>
|
||||
<img src="https://avatars2.githubusercontent.com/u/60652527?s=460&v=4" alt="xiaoliuxin" style="border-radius:5px;" width="50px"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -313,14 +307,14 @@
|
||||
|
||||
<div style="text-align: center">
|
||||
<div align="center" >
|
||||
<table style="border:none;cell-padding:0; cell-spacing:0;border-collapse:collapse;" border="0">
|
||||
<table style="border:none; border-collapse:collapse;" border="0">
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/media/fairy-sister-450x450.jpg"
|
||||
width="250px"
|
||||
style="margin:10px"
|
||||
style="margin:5px"
|
||||
title="欢迎关注公众号:Rong姐姐好可爱" alt="关注公众号"/>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/media/chu-fan-443-650x650.jpg"
|
||||
width="250px"
|
||||
style="margin:10px"
|
||||
style="margin:5px"
|
||||
title="欢迎添加微信:chufan443 " alt="联系作者"/>
|
||||
</table>
|
||||
</div>
|
||||
@@ -331,7 +325,7 @@
|
||||
target="_blank"
|
||||
title="点击跳转Github主页"
|
||||
>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/github.svg"
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/github.svg" alt="CSDN" title="CSDN"
|
||||
style="margin: 5px;width: 24px;height: 24px;">
|
||||
</a>
|
||||
<a
|
||||
@@ -340,7 +334,7 @@
|
||||
target="_blank"
|
||||
title="点击跳转码云主页"
|
||||
>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/gitee.svg"
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/gitee.svg" alt="Gitee" title="Gitee"
|
||||
style="margin: 5px;width: 24px;height: 24px;">
|
||||
</a>
|
||||
<a
|
||||
@@ -349,7 +343,7 @@
|
||||
target="_blank"
|
||||
title="点击跳转掘金主页"
|
||||
>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/juejin.svg"
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/juejin.svg" alt="掘金"
|
||||
style="margin: 5px;width: 24px;height: 24px;">
|
||||
</a>
|
||||
<a
|
||||
@@ -358,7 +352,7 @@
|
||||
target="_blank"
|
||||
title="点击跳转B站主页"
|
||||
>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/bilibili.svg"
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/bilibili.svg" alt="Bilibili"
|
||||
style="margin: 5px;width: 24px;height: 24px;">
|
||||
</a>
|
||||
<a
|
||||
@@ -368,7 +362,7 @@
|
||||
title="点击跳转CSDN博客主页"
|
||||
>
|
||||
<img src="https://cdn.statically.io/gh/142vip/cdn_service@main/main-vip/svg/csdn.svg"
|
||||
title="点击跳转CSDN博客主页"
|
||||
title="点击跳转CSDN博客主页" alt="CSDN"
|
||||
style="margin: 5px;width: 24px;height: 24px;">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -45,8 +45,11 @@ export default defineUserConfig({
|
||||
if (str.includes('@code')) {
|
||||
return str.replace(/^@code/, path.resolve(__dirname, '../../code/'))
|
||||
}
|
||||
if (str.includes('~@')) {
|
||||
return str.replace(/^~@/, path.resolve(__dirname, '../../'))
|
||||
if (str.includes('@ds')) {
|
||||
return str.replace(/^@ds/, path.resolve(__dirname, '../../code/ds/'))
|
||||
}
|
||||
if (str.includes('~')) {
|
||||
return str.replace(/^~/, path.resolve(__dirname, '../../'))
|
||||
}
|
||||
return str
|
||||
},
|
||||
|
||||
@@ -25,7 +25,7 @@ export const navbar = [
|
||||
},
|
||||
{
|
||||
text: '思维导图',
|
||||
link: "/manuscripts/mark-map",
|
||||
link: "/manuscripts/mark-map/ds-map.html",
|
||||
},
|
||||
{
|
||||
text: "了解更多",
|
||||
|
||||
@@ -29,31 +29,5 @@ export default {
|
||||
},
|
||||
],
|
||||
}),
|
||||
// // md文档增强
|
||||
// mdEnhancePlugin({
|
||||
// // 文件导入
|
||||
// include: true,
|
||||
// // 容器
|
||||
// container: true,
|
||||
// }),
|
||||
// componentsPlugin({
|
||||
// // 插件选项
|
||||
// components: [
|
||||
// "ArtPlayer",
|
||||
// "AudioPlayer",
|
||||
// "Badge",
|
||||
// "BiliBili",
|
||||
// "CodePen",
|
||||
// "PDF",
|
||||
// "Replit",
|
||||
// "Share",
|
||||
// "SiteInfo",
|
||||
// "StackBlitz",
|
||||
// // "VidStack",
|
||||
// "VideoPlayer",
|
||||
// "XiGua",
|
||||
// "YouTube",
|
||||
// ],
|
||||
// }),
|
||||
]
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Markmap</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#mindmap {
|
||||
display: block;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.15.4/dist/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<svg id="mindmap"></svg>
|
||||
<script src="https://cdn.jsdelivr.net/npm/d3@7.8.5/dist/d3.min.js"></script><script src="https://cdn.jsdelivr.net/npm/markmap-view@0.15.4/dist/browser/index.js"></script><script src="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.15.4/dist/index.js"></script><script>(r => {
|
||||
setTimeout(r);
|
||||
})(() => {
|
||||
const {
|
||||
markmap,
|
||||
mm
|
||||
} = window;
|
||||
const toolbar = new markmap.Toolbar();
|
||||
toolbar.attach(mm);
|
||||
const el = toolbar.render();
|
||||
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
|
||||
document.body.append(el);
|
||||
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
|
||||
const markmap = getMarkmap();
|
||||
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
|
||||
})(() => window.markmap,null,{"type":"heading","depth":0,"payload":{"lines":[0,1]},"content":"思维导图","children":[{"type":"blockquote","depth":1,"payload":{"lines":[2,3]},"content":"","children":[{"type":"paragraph","depth":2,"payload":{"lines":[2,3]},"content":"思维导图汇总整理,内容更新慢于笔记,赶稿中...","children":[]}]},{"type":"bullet_list","depth":1,"payload":{"lines":[4,9]},"content":"","children":[{"type":"list_item","depth":2,"payload":{"lines":[4,5]},"content":"<a href=\"../mark-map/ds-map.html\" target=\"_blank\">数据结构</a>","children":[]},{"type":"list_item","depth":2,"payload":{"lines":[5,6]},"content":"<a href=\"../mark-map/os-map.html\" target=\"_blank\">操作系统</a>","children":[]},{"type":"list_item","depth":2,"payload":{"lines":[6,7]},"content":"<a href=\"../mark-map/ccp-map.html\" target=\"_blank\">计算机组成原理</a>","children":[]},{"type":"list_item","depth":2,"payload":{"lines":[7,8]},"content":"<a href=\"../mark-map/cn-map.html\" target=\"_blank\">计算机网络</a>","children":[]}]}]},null)</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,6 +1,6 @@
|
||||
// 主题色
|
||||
//$theme-color: #2980B9;
|
||||
$theme-color: #4979ff;
|
||||
$theme-color: #6184e8;
|
||||
//$sidebar-width: 20rem;
|
||||
//$sidebar-mobile-width: 16rem;
|
||||
//$content-width: 75rem;
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
```mindmap
|
||||
root(计算机网络)
|
||||
体系机构
|
||||
物理层
|
||||
数据链路层
|
||||
网络层
|
||||
传输层
|
||||
应用层
|
||||
(体系机构)
|
||||
(物理层)
|
||||
(数据链路层)
|
||||
(网络层)
|
||||
(传输层)
|
||||
(应用层)
|
||||
```
|
||||
|
||||
## 体系机构
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
```mindmap
|
||||
root(数据结构)
|
||||
基础入门
|
||||
线性表
|
||||
栈和队列
|
||||
队列
|
||||
串
|
||||
树与二叉树
|
||||
图论
|
||||
查找
|
||||
排序
|
||||
(基础入门)
|
||||
(线性表)
|
||||
(栈和队列)
|
||||
(队列)
|
||||
(串)
|
||||
(树与二叉树)
|
||||
(图论)
|
||||
(查找)
|
||||
(排序)
|
||||
```
|
||||
|
||||
## 基础入门
|
||||
|
||||
@@ -10,15 +10,15 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(基础概念)
|
||||
数据
|
||||
数据元素
|
||||
数据对象
|
||||
数据类型
|
||||
抽象数据类型(ADT)
|
||||
数据结构
|
||||
(数据)
|
||||
(数据元素)
|
||||
(数据对象)
|
||||
(数据类型)
|
||||
(抽象数据类型(ADT))
|
||||
(数据结构)
|
||||
```
|
||||
|
||||
### 数据
|
||||
## 数据
|
||||
|
||||
**信息的载体**,是客观事物属性的数、字符以及所有能够输入到计算机包中并且被计算机程序识别和处理的**集合**
|
||||
|
||||
@@ -32,7 +32,7 @@ root(基础概念)
|
||||
|
||||
具有**相同性质**的数据元素的**集合**,**是数据的子集**
|
||||
|
||||
### 数据类型
|
||||
## 数据类型
|
||||
|
||||
值的集合和定义在此集合上一组操作的总称
|
||||
|
||||
@@ -40,7 +40,7 @@ root(基础概念)
|
||||
- 结构类型:可以分解成若干分量(成分)的数据类型;
|
||||
- **抽象数据类型**:抽象出具组织和其相关的操作;
|
||||
|
||||
### 抽象数据类型(ADT)
|
||||
## 抽象数据类型(ADT)
|
||||
|
||||
> Tips: 可以结合高级语言中类对象封装来理解;
|
||||
|
||||
@@ -62,7 +62,7 @@ ADT抽象数据类型名{
|
||||
|
||||
抽象数据类型独立于运算的具体实现,使用户程序只能通过抽象数据类型定义的某些操作来访问其中的数据,实现了信息隐藏。
|
||||
|
||||
### 数据结构
|
||||
## 数据结构
|
||||
|
||||
首先明确:数据元素都不是孤立存在的。元素与元素之间存在着某种关系,这种相互之间的关系就是**结构**。
|
||||
|
||||
|
||||
@@ -10,16 +10,16 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(数据结构三要素)
|
||||
逻辑结构
|
||||
存储(物理)结构
|
||||
顺序存储
|
||||
链式存储
|
||||
索引存储
|
||||
散列(Hash)存储
|
||||
数据的运算
|
||||
(逻辑结构)
|
||||
(存储(物理)结构)
|
||||
(顺序存储)
|
||||
(链式存储)
|
||||
(索引存储)
|
||||
(散列(Hash)存储)
|
||||
(数据的运算)
|
||||
```
|
||||
|
||||
### 逻辑结构
|
||||
## 逻辑结构
|
||||
|
||||
数据元素之间的逻辑关系,从逻辑关系上描述数据,叫做数据的逻辑结构。
|
||||
|
||||
@@ -41,7 +41,7 @@ root(数据结构三要素)
|
||||
- `树形结构`:结构中的数据元素之间**存在一对多的关系。**
|
||||
- `图状结构和网状结构`:结构中的数据元素之间**存在多对多的关系。**
|
||||
|
||||
### 存储(物理)结构
|
||||
## 存储(物理)结构
|
||||
|
||||
数据结构在计算机中的表示(映像)。包括数据`元素的表示`和`关系的表示`。
|
||||
|
||||
@@ -56,7 +56,7 @@ root(数据结构三要素)
|
||||
|
||||
**注意:存储和存取的概念不一样**
|
||||
|
||||
#### 顺序存储
|
||||
### 顺序存储
|
||||
|
||||
**逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之间的关系由存储单元的邻接关系来体现。**
|
||||
|
||||
@@ -77,7 +77,7 @@ root(数据结构三要素)
|
||||
- 外部碎片:`还没有分配出去`(不属于任何进程),但是**由于大小而无法分配给申请内存空间的新进程的内存空闲块。**
|
||||
- 内部碎片:`已经被分配出去`(能明确指出属于哪个进程)的**内存空间大于请求所需的内存空间,不能被利用的内存空间就是内部碎片。**
|
||||
|
||||
#### 链式存储
|
||||
### 链式存储
|
||||
|
||||
与顺序存储不同,**链式存储不要求逻辑上相邻的元素在物理位置上也相邻。**
|
||||
|
||||
@@ -93,7 +93,7 @@ root(数据结构三要素)
|
||||
- 除了存储元素外,还需要额外存储指针,会占用额外的存储空间(结合数据库索引学习)。
|
||||
- 链式存储,**只能实现`顺序存取`,不能实现`随机存取`(指针的遍历)**
|
||||
|
||||
#### 索引存储
|
||||
### 索引存储
|
||||
|
||||
存放数据元素和元素间关系的存储方式,在存储元素信息的同时,还需要建立附加的`索引表`。
|
||||
|
||||
@@ -108,7 +108,7 @@ root(数据结构三要素)
|
||||
- 增加了索引表,占用较多的存储空间(典型的空间换时间策略)
|
||||
- 增加、删除数据时,需要对应修改索引表,花费更多时间。
|
||||
|
||||
#### 散列(Hash)存储
|
||||
### 散列(Hash)存储
|
||||
|
||||
根据元素的关键字直接通过散列(Hash)函数计算出元素的存储地址。
|
||||
|
||||
@@ -122,7 +122,7 @@ root(数据结构三要素)
|
||||
- 会出现`散列冲突`(主要依赖与散列函数,散列函数不好就很容易出现散列冲突)
|
||||
- 出现`散列冲突`时,解决冲突就会增加时间和空间上的开销
|
||||
|
||||
### 数据的运算
|
||||
## 数据的运算
|
||||
|
||||
数据上的运算包括:`运算的定义` 、`运算的实现`
|
||||
|
||||
|
||||
@@ -10,23 +10,23 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(算法和算法评价)
|
||||
算法
|
||||
有穷性
|
||||
确定性
|
||||
可行性
|
||||
输入
|
||||
输出
|
||||
(算法)
|
||||
(有穷性)
|
||||
(确定性)
|
||||
(可行性)
|
||||
(输入)
|
||||
(输出)
|
||||
|
||||
算法的评价
|
||||
时间复杂度
|
||||
空间复杂度
|
||||
(算法的评价)
|
||||
(时间复杂度)
|
||||
(空间复杂度)
|
||||
```
|
||||
|
||||
### 算法
|
||||
## 算法
|
||||
|
||||
`算法` : 对特定问题求解步骤的一种描述,**是指令的有序集合**,每一条指令表示一个或多个操作。
|
||||
|
||||
#### 重要特性
|
||||
### 重要特性
|
||||
|
||||
- `有穷性`:必须总是(对任何合法的输入值)在**执行有穷步后结束**,并且每一步都可**在有穷时间内完成**
|
||||
- `确定性`:每条指令的含义明确,不会产生二义性(歧义),**对相同的输入只能得出相同的结果**
|
||||
@@ -36,7 +36,7 @@ root(算法和算法评价)
|
||||
|
||||
> **算法是有穷的,但是程序不一定满足有穷性**,程序只是算法在计算机上的特定的实现, 例如:死循环
|
||||
|
||||
#### 算法的目标
|
||||
### 算法的目标
|
||||
|
||||
由于设计思路、解决问题方案等方面不同,不同算法之间也是有好坏的,就像人与人之间存在着差异。为设计出更好的算算法,往往需要追求更高的目标,而好的算法需要考虑到的目标就有:
|
||||
|
||||
@@ -47,11 +47,11 @@ root(算法和算法评价)
|
||||
|
||||
> Tips: 效率可以结合时间复杂度来理解,存储量需求可以结合空间复杂度理解;
|
||||
|
||||
### 效率的度量
|
||||
## 效率的度量
|
||||
|
||||
算法效率的度量是通过`时间复杂度`和`空间复杂度`来描述的;
|
||||
|
||||
#### 时间复杂度
|
||||
### 时间复杂度
|
||||
|
||||
语句的频度:语句在算法中被重复执行的次数
|
||||
|
||||
@@ -90,7 +90,7 @@ int test(n) {
|
||||
|
||||
一般情况下,考虑最坏情况的时间复杂度(即:最坏时间复杂度),保证算法的运行时间不会更长(最糟糕我都能预料,难道还有更糟糕?????噗呲)
|
||||
|
||||
#### 空间复杂度
|
||||
### 空间复杂度
|
||||
|
||||
算法的空间复杂度可以用函数记作:S(n),**用来定义算法运行过程中需要耗费的存储空间**,是问题规模n的函数;
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(栈VS队列补充)
|
||||
栈的应用
|
||||
队列的应用
|
||||
数组的定义
|
||||
矩阵的压缩存储
|
||||
(栈的应用)
|
||||
(队列的应用)
|
||||
(数组的定义)
|
||||
(矩阵的压缩存储)
|
||||
```
|
||||
|
||||
## 栈的应用
|
||||
|
||||
@@ -12,13 +12,13 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(数据结构三要素)
|
||||
逻辑结构
|
||||
存储(物理)结构
|
||||
顺序存储
|
||||
链式存储
|
||||
索引存储
|
||||
散列(Hash)存储
|
||||
数据的运算
|
||||
(逻辑结构)
|
||||
(存储(物理)结构)
|
||||
(顺序存储)
|
||||
(链式存储)
|
||||
(索引存储)
|
||||
(散列(Hash)存储)
|
||||
(数据的运算)
|
||||
```
|
||||
|
||||
## 定义
|
||||
|
||||
@@ -9,10 +9,10 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(链式表示)
|
||||
单链表
|
||||
双链表
|
||||
循环链表
|
||||
静态链表
|
||||
(单链表)
|
||||
(双链表)
|
||||
(循环链表)
|
||||
(静态链表)
|
||||
```
|
||||
|
||||
顺序表的插入、删除操作需要移动大量元素,影响了运行效率(虽然时间复杂度为O(1)的情况也存在)。
|
||||
@@ -27,15 +27,15 @@ root(链式表示)
|
||||
|
||||
```mindmap
|
||||
root(单链表)
|
||||
单链表
|
||||
头结点
|
||||
头插法
|
||||
尾插法
|
||||
按序号查找
|
||||
按值查找
|
||||
结点插入
|
||||
删除结点
|
||||
计算表长
|
||||
(单链表)
|
||||
(头结点)
|
||||
(头插法)
|
||||
(尾插法)
|
||||
(按序号查找)
|
||||
(按值查找)
|
||||
(结点插入)
|
||||
(删除结点)
|
||||
(计算表长)
|
||||
```
|
||||
|
||||
### 基本概念
|
||||
@@ -404,9 +404,9 @@ if(L->next===NULL){
|
||||
|
||||
```mindmap
|
||||
root(双链表)
|
||||
基本特点
|
||||
插入结点
|
||||
删除结点
|
||||
(基本特点)
|
||||
(插入结点)
|
||||
(删除结点)
|
||||
```
|
||||
|
||||
从单链表的结构上来看
|
||||
@@ -482,13 +482,13 @@ free(q);
|
||||
## 循环链表
|
||||
|
||||
```mindmap
|
||||
循环链表
|
||||
循环单链表
|
||||
判空条件
|
||||
基本特点
|
||||
循环双链表
|
||||
判空条件
|
||||
基本特点
|
||||
(循环链表)
|
||||
(循环单链表)
|
||||
(判空条件)
|
||||
(基本特点)
|
||||
(循环双链表)
|
||||
(判空条件)
|
||||
(基本特点)
|
||||
|
||||
```
|
||||
|
||||
|
||||
@@ -10,17 +10,17 @@ head:
|
||||
|
||||
```mindmap
|
||||
root(链式表示)
|
||||
顺序表和链表的比较
|
||||
存取方式
|
||||
逻辑结构与物理结构
|
||||
时间复杂度
|
||||
空间分配
|
||||
存储结构的选取
|
||||
基于存储的考虑
|
||||
基于运算的考虑
|
||||
基于环境的考虑
|
||||
知识补充
|
||||
单链表设置头结点
|
||||
(顺序表和链表的比较)
|
||||
(存取方式)
|
||||
(逻辑结构与物理结构)
|
||||
(时间复杂度)
|
||||
(空间分配)
|
||||
(存储结构的选取)
|
||||
(基于存储的考虑)
|
||||
(基于运算的考虑)
|
||||
(基于环境的考虑)
|
||||
(知识补充)
|
||||
(单链表设置头结点)
|
||||
```
|
||||
|
||||
## 顺序表和链表的比较
|
||||
|
||||
@@ -8,20 +8,20 @@ permalink: /manuscripts/job-poster-bytedance.html
|
||||
### 字节工作内推
|
||||
|
||||
```mindmap
|
||||
字节工作内推
|
||||
前端
|
||||
支付
|
||||
直播
|
||||
智能营销中台
|
||||
社区安全
|
||||
root(字节工作内推)
|
||||
(前端)
|
||||
(支付)
|
||||
(直播)
|
||||
(智能营销中台)
|
||||
(社区安全)
|
||||
|
||||
高级前端
|
||||
翻译方向
|
||||
中后台方向
|
||||
抖音用户
|
||||
(高级前端)
|
||||
(翻译方向)
|
||||
(中后台方向)
|
||||
(抖音用户)
|
||||
|
||||
资深前端
|
||||
抖音电商
|
||||
(资深前端)
|
||||
(抖音电商)
|
||||
|
||||
```
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# 思维导图
|
||||
|
||||
> 思维导图汇总整理,内容更新慢于笔记,赶稿中...
|
||||
|
||||
- <a href="../mark-map/ds-map.html" target="_blank">数据结构</a>
|
||||
- <a href="../mark-map/os-map.html" target="_blank">操作系统</a>
|
||||
- <a href="../mark-map/ccp-map.html" target="_blank">计算机组成原理</a>
|
||||
- <a href="../mark-map/cn-map.html" target="_blank">计算机网络</a>
|
||||
|
||||
[//]: # (xmind在线加载时间太长)
|
||||
[//]: # (<ClientOnly>)
|
||||
[//]: # (<XMindManager></XMindManager>)
|
||||
[//]: # (</ClientOnly>)
|
||||
@@ -6,12 +6,12 @@ permalink: /manuscripts/os.html
|
||||
# 操作系统
|
||||
|
||||
```mindmap
|
||||
操作系统
|
||||
系统概述
|
||||
进程管理
|
||||
进程管理
|
||||
文件管理
|
||||
输入、输出管理
|
||||
root(操作系统)
|
||||
(系统概述)
|
||||
(进程管理)
|
||||
(进程管理)
|
||||
(文件管理)
|
||||
(输入、输出管理)
|
||||
```
|
||||
|
||||
## 系统概述
|
||||
|
||||
@@ -36,7 +36,7 @@ exports.execShell = async commands => {
|
||||
// await syncExec(command)
|
||||
const execResult = await exec(command)
|
||||
// 打印输出结果
|
||||
// console.log(execResult.stdout);
|
||||
console.log(execResult.stdout);
|
||||
console.log(`step${count}(ending): === \n`)
|
||||
// 指令异常,不执行后续指令,非0退出
|
||||
if (execResult.code !== 0) {
|
||||
@@ -44,16 +44,4 @@ exports.execShell = async commands => {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 脚本基础设置
|
||||
*/
|
||||
exports.BaseSetting = {
|
||||
successLogger: "\033[36m",
|
||||
errorLogger: "\033[1;31m",
|
||||
warnLogger: "\033[1;33m",
|
||||
// 定义时间
|
||||
currentTime: '$(date "+%Y-%m-%d %H:%M:%S")'
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,7 +11,8 @@ echo "期望的 pnpm 大版本号:$majorVersionRequired"
|
||||
|
||||
# 检测 pnpm 是否已安装并且大版本号符合要求
|
||||
checkPNPMVersion() {
|
||||
local pnpmVersionInstalled=$(pnpm --version 2>/dev/null) # 获取已安装的 pnpm 版本
|
||||
# 获取已安装的 pnpm 版本
|
||||
local pnpmVersionInstalled=$(pnpm --version 2>/dev/null)
|
||||
if [[ $pnpmVersionInstalled =~ ^$majorVersionRequired ]]; then
|
||||
echo "已安装的 pnpm 版本:$pnpmVersionInstalled"
|
||||
echo "已安装的 pnpm 大版本号符合要求."
|
||||
|
||||
@@ -7,4 +7,7 @@
|
||||
*/
|
||||
|
||||
const {execShell} = require('./.exec');
|
||||
(async () => await execShell('npm run build:mark-map && vuepress dev docs'))()
|
||||
(async () => await execShell([
|
||||
'npm run build:mark-map',
|
||||
'vuepress dev docs'
|
||||
]))()
|
||||
|
||||
Reference in New Issue
Block a user