1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-04-05 11:38:27 +08:00

feat: 408各科导航目录梳理,修改跳转链

This commit is contained in:
chu fan
2023-10-16 11:03:31 +08:00
parent fb6814dc88
commit cd9f486bfb
15 changed files with 365 additions and 177 deletions

217
README.md
View File

@@ -1,4 +1,3 @@
<div align="center">
<p>
<img alt="408Logo图片" width="240" src="https://cdn.statically.io/gh/142vip/cdn_service@main/doc_book/408/408_logo.png" style="text-align: center;">
@@ -109,24 +108,23 @@
## 大纲目录善用Ctrl+F
**注意:没有链接的,可以在仓库找找,只是选择性进行博客和公众号发表**
**注意:没有链接的,可以在仓库找找,只是选择性进行博客和公众号发表**
### 数据结构
> 参考资料
>
> 1. 《数据结构》 .
> 2. 《大话数据结构》.
> 3. 《数据结构与算法景点问题解析》 第二版 Narasimha Karumanchi著.
> 4. 《计算机网络-王道考研》 2019 王道论坛著.
> 参考资料
> - 《数据结构》 .
> - 《大话数据结构》.
> - 《数据结构与算法景点问题解析》 第二版 Narasimha Karumanchi著.
> - 《计算机网络-王道考研》 2019 王道论坛著.
#### [基础入门](./manuscripts/数据结构/基础入门/readme.md)
#### 基础入门
- [基础概念](https://mp.weixin.qq.com/s/M8MOCVnbVxQ3GRuxRaEKIg)
- [数据结构三要素](https://mp.weixin.qq.com/s/7sCoHDFtI-Qp0wBcvMH6kQ)
- [算法与算法评价](https://mp.weixin.qq.com/s/58fBAwoyg2Ali-HqOJ6t9g)
#### [线性表](./manuscripts/数据结构/线性表/readme.md)
#### 线性表
- [基础概念和基本操作](https://mp.weixin.qq.com/s/3e5LX9HbnjfT980zV3veXA)
- [线性表的顺序表示](https://mp.weixin.qq.com/s/gaXmF3tqZxxFXhhDyPZv-A)
@@ -139,118 +137,110 @@
- [零碎知识补充](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&amp;mid=2247485549&amp;idx=2&amp;sn=5282cd006b6c33e4bfe992298602e053&amp;chksm=fcdfb1e1cba838f743a335bad530cf415eef57a417b807257d8ed6983047c2d57d5552b34cb0&token=1697862929&lang=zh_CN#rd)
#### [栈和队列](Readme.md)
####
- [栈的基本概念和基本操作](1.栈的基本概念和基本操作.md)
- [栈的顺序存储结构](2.栈的顺序存储结构.md)
- [栈的链式存储结构](3.栈链式存储结构.md)
- [队列的基本概念和基础操作](4.队列的基本概念和基础操作.md)
- [队列的顺序存储](5.队列的顺序存储结构.md)
- [队列的链式存储](6.队列的链式存储结构.md)
- [栈和队列的应用](栈和队列的应用.md)
- [特殊矩阵的压缩存储](8.特殊矩阵的压缩存储.md)
- 基本概念和操作
- 顺序存储结构
- 链式存储结构
#### 队列
- 基本概念和操作
- 顺序存储结构
- 链式存储结构
#### 串
- 基本概念
- 简单的模式匹配
- KMP算法
#### 树与二叉树
-
- 定义
- 术语
- 性质
- 基本概念
- 二叉树
- 定义和特性
- 存储结构
- 二叉树遍历
- 线索二叉树
- 二叉树遍历
- 线索二叉树
- 树和森林
- 存储结构
- 树、森林与二叉树转换
- 遍历
- 并查集应用
- 树的应用
- 二叉排序树
- 平衡二叉树
- 哈夫曼树
- 哈夫曼编码
#### 图论
- 基本概念
- 图的存储
- 图的遍历
- 图的应用
#### 查找
- 基本概念
- 顺序查找
- 折半查找
- B树和B+树
- 散列表
#### 排序
- 排序的基础概念
- 直接排序
- 交换排序之冒泡排序
- 交换排序之快速排序
- 基本概念
- 插入排序
- 交换排序
- 选择排序
- 归并排序
- 基数排序
- 部排序算法的比较和应用
- 外部排序的基本概念
- 外部排序方法整理
### 计算机网络
> 参考资料:
>
> 1. 《计算机网络》 第七版 谢希仁著.
> 2. 《计算机网络-王道考研》 2019 王道论坛.
- [第一章:绪论]()
- [第二章:物理层]()
- [第三章:数据链路层]()
- [第四章:网络层]()
- [第五章:运输层]()
- [第六章:应用层]()
- [第七章:网络安全]()
- [第八章:互联网上的音频/视频服务]()
- [第九章:无线网络和移动网络]()
- 部排序
### 计算机操作系统
> 参考资料:
>
> 1. 《计算机操作系统》 第四版 汤小丹、梁红兵、汤子瀛著
> 2. 《操作系统-王道考研》 2019 王道论坛
> 参考资料
> - 《计算机操作系统》 第四版 汤小丹、梁红兵、汤子瀛著
> - 《操作系统-王道考研》 2019 王道论坛
#### 概述
#### 系统概述
- 引论
- 发展和分类
- 运行环境
- 体系结构
#### 进程管理
- 进程和线程
- 处理机调度
- 进程同步
- 死锁
#### 内存管理
- 引论
- 虚拟内存
- 一些总结
#### 文件管理
- 基本概念
- 文件系统
- 磁盘管理
- 一些总结
#### I/O管理
- 第一章:操作系统引论
- 第二章:进程的描述与控制
- 第三章:处理机调度与死锁
- 第四章:存储器管理
- 第五章:虚拟存储器
- 第六章:虚拟存储器
- 第七章:文件管理
- 第八章:磁盘存储器的管理
- 第九章:操作系统接口
- 第十章:多处理机操作系统
- 第十一章:多媒体操作系统
- 第十二章:保护与安全
#### 输入、输出管理
- 基本概述
- 核心子系统
- 高速缓存和缓冲区
- 一些总结
### 计算机组成原理
> 参考资料:
> 1. 《计算机组成原理》 第二版 唐朔飞
> 2. 《计算机组成原理-王道考研》 2019 王道论坛
> 参考资料
> - 《计算机组成原理》 第二版 唐朔飞
> - 《计算机组成原理-王道考研》 2019 王道论坛
#### 概述
@@ -270,6 +260,61 @@
#### 输入输出系统
### 计算机网络
> 参考资料
> - 《计算机网络-第七版》 谢希仁著.
> - 《计算机网络-王道考研》 2019 王道论坛.
#### 体系机构
- 基本介绍
- 体系结构与参考模型
#### 物理层
- 通信基础
- 传输介质
- 物理层设备
#### 数据链路层
- 基本功能
- 组帧
- 差错控制
- 流量控制&可靠传输
- 介质访问控制
- 局域网
- 广域网
- 通信设备
#### 网络层
- 基本功能
- 路由算法
- 路由协议
- IPV4
- IPV6
- IP组播&移动IP
- 网络层设备
#### 传输层
- 提供的服务
- UDP协议
- TCP协议
#### 应用层
- 应用模型
- DNS
- FTP协议
- 电子邮件
- HTTP协议

View File

@@ -35,6 +35,9 @@ export default defineUserConfig({
})();`
]
],
// 配置永久链接参考https://v2.vuepress.vuejs.org/zh/reference/frontmatter.html#permalink
// permalink: "/:year/:month/:day/:slug",
// permalinkPattern: `:slug.html`,
markdown: {
// todo 引入代码文件时的路径替换
importCode: {

View File

@@ -6,10 +6,11 @@ export const navbar = [
text: '首页',
link: '/'
},
{
text: "数据结构",
link: "/manuscripts/ds"
},
// {
// text: "数据结构",
// link: "/manuscripts/ds"
// },
"/manuscripts/ds",
{
text: "操作系统",
link: "/manuscripts/os"

View File

@@ -14,21 +14,21 @@ export default {
// HelloWorld: path.resolve(__dirname, '../components/HelloWorld.vue')
// }
}),
searchProPlugin({
// 索引全部内容
indexContent: true,
// 为分类和标签添加索引
customFields: [
{
getter: (page: any) => page.frontmatter.category,
formatter: "分类:$content",
},
{
getter: (page) => page.frontmatter.tag,
formatter: "标签:$content",
},
],
}),
// searchProPlugin({
// // 索引全部内容
// indexContent: true,
// // 为分类和标签添加索引
// customFields: [
// {
// getter: (page: any) => page.frontmatter.category,
// formatter: "分类:$content",
// },
// {
// getter: (page) => page.frontmatter.tag,
// formatter: "标签:$content",
// },
// ],
// }),
// // md文档增强
// mdEnhancePlugin({
// // 文件导入

View File

@@ -1,10 +1,65 @@
# 计算机网络
```mindmap
root(计算机网络)
体系机构
物理层
数据链路层
网络层
传输层
应用层
```
### 体系
### 物理层
### 数据链路层
### 网络层
### 传输层
### 应用层
## 体系
- 基本介绍
- 体系结构与参考模型
## 物理层
- 通信基础
- 传输介质
- 物理层设备
## 数据链路层
- 基本功能
- 组帧
- 差错控制
- 流量控制&可靠传输
- 介质访问控制
- 局域网
- 广域网
- 通信设备
## 网络层
- 基本功能
- 路由算法
- 路由协议
- IPV4
- IPV6
- IP组播&移动IP
- 网络层设备
## 传输层
- 提供的服务
- UDP协议
- TCP协议
## 应用层
- 应用模型
- DNS
- FTP协议
- 电子邮件
- HTTP协议
## 参考资料
-《计算机网络-第七版》谢希仁著.
-《计算机网络-王道考研》2019 王道论坛.

View File

@@ -42,36 +42,43 @@ export const dsSidebar = [
]
},
{
text: '栈和队列',
text: '栈',
prefix: '栈和队列',
collapsible: false,
children: [
{
text: '栈-基本概念和操作',
text: '基本概念和操作',
link: '1.栈的基本概念和基本操作.md'
},
{
text: '栈-顺序存储结构',
text: '顺序存储结构',
link: '2.栈的顺序存储结构.md'
},
{
text: '栈-链式存储结构',
text: '链式存储结构',
link: '3.栈的链式存储结构.md'
},
}
]
},
{
text: '队列',
prefix: '栈和队列',
collapsible: false,
children: [
{
text: '队列-基本概念和操作',
text: '基本概念和操作',
link: '4.队列的基本概念和操作.md'
}, {
text: '队列-顺序存储结构',
text: '顺序存储结构',
link: '5.队列的顺序存储结构.md'
},
{
text: '队列-链式存储结构',
text: '链式存储结构',
link: '6.队列的链式存储结构.md'
},
{
text: '一些总结',
link: '7.总结.md'
text: '栈VS队列补充',
link: '7.栈VS队列补充.md'
}
]
},

View File

@@ -1,5 +1,19 @@
# 数据结构
```mindmap
root(数据结构)
基础入门
线性表
栈和队列
队列
树与二叉树
图论
查找
排序
```
## 基础入门
- [x] 基本概念
@@ -14,7 +28,7 @@
- [x] 链式表示
- [x] 一些总结
## 栈和队列
## 栈
- [x] 基本概念和操作
- [x] 顺序存储结构
@@ -29,12 +43,55 @@
- [x] 一些总结
## 串
- 基本概念
- 简单的模式匹配
- KMP算法
## 树与二叉树
- 基本概念
- 二叉树
- 二叉树遍历
- 线索二叉树
- 树和森林
- 树的应用
## 参考资料:
## 图论
- 《数据结构》. 严蔚敏著
- 《数据结构-王道考研》. 2019 王道论坛
- 基本概念
- 图的存储
- 图的遍历
- 图的应用
## 查找
- 基本概念
- 顺序查找
- 折半查找
- B树和B+树
- 散列表
## 排序
- 基本概念
- 插入排序
- 交换排序
- 选择排序
- 归并排序
- 基数排序
- 外部排序
## 参考资料
- 《数据结构》严蔚敏著.
- 《数据结构-王道考研》2019 王道论坛.

View File

@@ -1,5 +1,10 @@
---
permalink: /test
---
# 基本概念和基本操作
## 基本概念
`栈` 只允许在一端进行插入或者删除操作的**线性表**`后进先出的线性表`
@@ -36,7 +41,7 @@
可以得出结论栈是后进先出先进后出LIFOLast In First Out也可以叫**后进先出的线性表**
## 栈的基本操作
## 基本操作
- `InitStack(&S)`: 初始化一个空栈`S`,栈顶指针初始化为-1

View File

@@ -7,7 +7,7 @@
> 指针指向栈顶top主要是因为栈在线性表的一端操作操作的那端就是栈顶方便操作。
### 顺序栈的存储类型
## 顺序栈的存储类型
```cpp
// 定义栈中元素的最大个数
@@ -42,7 +42,7 @@ typedef struct{
### 顺序栈的基本运算
## 顺序栈的基本运算
- `InitStack(&S)`: 初始化一个空栈`S`,栈顶指针初始化为-1
@@ -53,7 +53,7 @@ typedef struct{
- `ClearStack(&S)`: 销毁栈,释放栈`S`占用的存储空间。
#### 初始化
### 初始化
`InitStack(&S)`: 初始化一个空栈`S`,栈顶指针初始化为-1
@@ -68,7 +68,7 @@ void InitStack(&S){
```
#### 栈空判断
### 栈空判断
`StackEmpty(S)`: 判断一个栈是否为空,即:栈顶指针是否为-1如果栈空则返回`true`,否则返回`false`
@@ -87,7 +87,7 @@ bool StackEmpty(S){
```
#### 进栈
### 进栈
`Push(&S,x)`: 进栈,若栈未满,`x`进栈操作,插入到栈内成为`新的栈顶元素`
@@ -113,7 +113,7 @@ bool Push(SqStack &S,ElemType x){
- 进栈先移动栈顶指针+1再操作入栈元素
- `++i`是简写先对变量i进行递加操作再进行使用先加后用
#### 出栈
### 出栈
`Pop(&S,&x)`: 出栈,若栈非空,出栈操作,**弹出栈顶元素**,用指针`x`进行返回。
@@ -141,7 +141,7 @@ bool Pop(SqStack &S,ElemType &x){
#### 读(获取)栈顶元素
### 读(获取)栈顶元素
`GetTop(S,&x)`: 读栈顶元素,若栈`S`非空用x返回栈顶元素。
@@ -178,7 +178,7 @@ bool GetTop(SqStack S,ElemType &x){
### 共享栈
## 共享栈
`共享栈`:利用栈底位置相对不变的特性,可以让两个顺序栈共享一个`一维存储空间`,将两个栈的栈底分别设置在共享空间的两端,两个栈顶则向共享空间的中间延伸
@@ -196,7 +196,7 @@ bool GetTop(SqStack S,ElemType &x){
当且仅当两个栈的栈顶指针相邻(`top1-top0=1`),可以判断共享栈栈满
#### 进栈
### 进栈
> 进栈:先移动指针,后进行赋值
@@ -205,7 +205,7 @@ bool GetTop(SqStack S,ElemType &x){
- 当0号栈进栈时0号栈栈顶指针top0`先加1后赋值`
- 当1号栈进栈时0号栈栈顶指针top1`先减1后赋值`
#### 出栈
### 出栈
> 出栈:先进行赋值,后移动指针

View File

@@ -1,4 +1,3 @@
# 栈的链式存储结构
`链栈` 采用链式存储的栈
@@ -43,14 +42,14 @@ typedef struct LinkStack
```
### 优点
优点:
- 便于多个栈共享存储空间
- 不存在栈满上溢的情况,避免程序因溢出导致出错
- 有效的提高存取效率
### 进栈
## 进栈
- 如果链栈不存在则栈满入栈操作失败返回false;
- 如果链栈存在,进行单链表的结点插入操作,移动指针,结点元素赋值,再将结点压入链栈中,移动链栈栈顶指针,最后链栈元素总数+1返回true
@@ -88,7 +87,7 @@ bool linkStackPushNode(LinkStack* linkStack,int e){
}
```
### 出栈
## 出栈
- 如果链栈不存在或者为空栈则无法进行出栈操作返回false
- 如果链栈满足出栈条件则通过栈顶指针获取到链栈栈底结点将其数据域赋值给变量e移动栈顶指针指向待出栈元素的后继结点同时释放待出栈元素的内存空间链栈元素总数-1 出栈成功返回true.

View File

@@ -1,7 +1,7 @@
# 队列的基本概念和操作
### 基本概念
## 基本概念
`队列`:和栈一样,是一种操作受限制的线性表,只允许在表的一端进行插入,在表的另外一端进行删除,简称为`队`,常记作:`Queue`
@@ -29,7 +29,7 @@
### 基础操作
## 基础操作
> 和栈一样,队列是操作受限的线性表,具有`先进先出`的特性,不是任何对线性表的操作都可以作为队列的操作。例如:无法随便读取到队列中间的某个数据,需要将前面的元素先出队

View File

@@ -75,7 +75,7 @@ typedef struct {
### 循环队列
## 循环队列
在上面的顺序队列中,当队满后进行出队列,由于顺序队列出队只在队首进行操作,并且只会修改队首指针,这时候就会出现队尾指针一直`Q.rear===MaxSize`情况,就如下:
@@ -124,10 +124,10 @@ typedef struct {
#### 如何区别队空还是队满
### 如何区别队空还是队满
> 为了很好的区别循环队列的`队空`还是`队满`的情况,一般有三种处理方式.
##### 牺牲一个单元来区分队空和队满
#### 牺牲一个单元来区分队空和队满
这种方式**要求在入队时少用一个队列单元**,是一种比较普遍的做法。约定:
@@ -138,7 +138,7 @@ typedef struct {
- 队列中元素个数:`(Q.rear+MaxSize-Q.front)%MaxSize`
##### 类型中增设表示元素个数的数据成员
#### 类型中增设表示元素个数的数据成员
这种就很直接了直接和MaxSize去比较就可以有
@@ -148,7 +148,7 @@ typedef struct {
值的注意的是:在这个前提下,不论是`队空`还是`队满`,对会存在`Q.front=Q.rear`,这个可以通过前面方案解决。
##### 类型中增设tag数据成员标记
#### 类型中增设tag数据成员标记
通过添加tag标记的方式区分`队空`还是`队满`
@@ -194,13 +194,13 @@ int DeLoopQueue(SqQueue &Q, ElemType &x){
}
```
#####
####
### 代码实现
## 代码实现
#### 初始化空队列
### 初始化空队列
```cpp
@@ -217,7 +217,7 @@ void InitLoopQueque(&Q){
}
```
#### 队列是否为空
### 队列是否为空
```cpp
/*
@@ -242,7 +242,7 @@ bool isEmpatyLoopQueue(Q){
```
#### 入队操作
### 入队操作
```cpp
/*
@@ -273,7 +273,7 @@ bool EnLoopQueue(SqQueue &Q, ElemType x){
```
#### 出队操作
### 出队操作
```cpp
@@ -309,8 +309,7 @@ bool DeLoopQueue(SqQueue &Q, ElemType &x){
```
#### 获取队头元素
### 获取队头元素
```cpp
/*
* @Description: 获取循环队列队头元素

View File

@@ -59,11 +59,11 @@ typedef struct{
- 不存在队满情况,也不会出现溢出情况;
- 链式队列不会出现存储分配不合理、“溢出”的情况,内存动态分配
### 基本操作
## 基本操作
> Tips: 基于带头结点链式队列的基础操作
#### 队列初始化
### 队列初始化
```cpp
@@ -89,7 +89,7 @@ voide InitLinkQueue(LinkQueue &Q){
> 链式队列本质是基于单链表的队列那带头结点的链式队列其实强调的也就是单链表要带头结点。队列的队首指针和队尾指针确定指向单表的队首和队尾就ok初始化的时候带头结点的单链表实质就只有一个头结点。而此时的链式队列需要将队首指针和队尾指针指向单链表的头结点就行好像到这里就完了。但是这样却忽视了单链表只是注重的队列的front和rear指针。单链表的结点元素是分数据域和指针域的即便是头结点的数据域可以不存什么当然也常会存一些链表信息什么的,此处的`Q.front->next=NULL`就是用来处理链表的头结点的指针域的,让其指向下一个单链表元素为空,这里是非常需要处理的,非常细节!
#### 判断队空
### 判断队空
```cpp
@@ -112,7 +112,7 @@ bool IsEmptyLinkQueue(LinkQueue Q){
}
```
#### 入队
### 入队
```cpp
@@ -143,7 +143,7 @@ void EnLinkQueue(LinkQueue &Q, ElemType x){
```
#### 出队
### 出队
```cpp
@@ -193,7 +193,7 @@ bool DeLinkQueue(LinkQueue &Q, ElemType &x){
### 双端队列
## 双端队列
`双端队列`: 允许在两端都可以进行入队和出队操作的队列,元素的逻辑结构仍然是线性结构
@@ -216,7 +216,7 @@ bool DeLinkQueue(LinkQueue &Q, ElemType &x){
### 队列的补充
## 知识补充
- 最适合用来链队的链表是:`带队首指针和队尾指针的非循环单链表`

View File

@@ -1,11 +1,11 @@
# 栈和队列总结
# 栈VS队列补充
> Tips: 这里不会做过多文字介绍相关应用,具体需要自己看书、查资料揣摩
```mindmap
root(栈和队列总结)
root(栈VS队列补充)
栈的应用
队列的应用
数组的定义

View File

@@ -1,20 +1,16 @@
# 操作系统
```mindmap
操作系统
系统概述
进程管理
进程管理
文件管理
I/O管理
输入、输出管理
```
## 系统概述
- 引论
@@ -24,16 +20,37 @@
## 进程管理
- 进程基本概念和特征
- 进程的运行
- 进程和线程
- 处理机调度
- 进程同步
- 死锁
## 内存管理
- 引论
- 虚拟内存
- 一些总结
## 文件管理
## I/O管理
- 基本概念
- 文件系统
- 磁盘管理
- 一些总结
## 参考资料:
- 《计算机操作系统-第四版》. 汤小丹、梁红兵、汤子瀛著
- 《操作系统-王道考研》. 2019 王道论坛
## 输入、输出管理
- 基本概述
- 核心子系统
- 高速缓存和缓冲区
- 一些总结
## 参考资料
- 《计算机操作系统》 第四版 汤小丹、梁红兵、汤子瀛著
- 《操作系统-王道考研》 2019 王道论坛