Skip to content

Commit 0a95366

Browse files
yanglbmeactions-user
authored andcommitted
style: prettify code
1 parent b5b28bb commit 0a95366

File tree

6 files changed

+138
-61
lines changed

6 files changed

+138
-61
lines changed

Diff for: README.md

+68-7
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,190 @@
11
# 必知必会:数据结构与算法
2+
23
[![java-ci](https://github.com/doocs/data-structure-and-algorithm/workflows/Java%20CI/badge.svg)](https://github.com/doocs/data-structure-and-algorithm/actions)
34
[![prs-welcome](https://badgen.net/badge/PRs/welcome/green)](http://makeapullrequest.com)
45
[![doocs-open-source-organization](https://badgen.net/badge/organization/join%20us/cyan)](https://doocs.github.io/#/?id=how-to-join)
56
[![gitter](https://badgen.net/badge/gitter/chat/cyan)](https://gitter.im/doocs)
67

7-
8-
> `Algorithms` + `Data Structures` = `Programs`, — Niklaus Wirth
8+
> `Algorithms` + `Data Structures` = `Programs`, — Niklaus Wirth
99
1010
目前来说,程序员的面试门槛越来越高,很多一线互联网公司的技术面试,都或多或少会考察数据结构与算法相关的题目,掌握数据结构与算法尤为重要。如果你不想永远做一名“代码搬运工”,那就花点时间一起来学习吧。本项目涵盖数据结构与算法所有知识点,内容将在后续不断更新,欢迎持续关注项目最新动态。
1111

12-
13-
1412
## 数据结构的划分
13+
1514
- [如何区分数据结构中的线性结构与非线性结构?](/docs/linear-vs-nonlinear-data-structure.md)
1615

1716
## 稀疏矩阵和队列
17+
1818
- [说一说什么是稀疏矩阵?稀疏矩阵有哪些存储方式?](/docs/the-introduction-to-sparse-matrix.md)
1919

2020
### 堆栈
21+
2122
- [堆栈](/docs/stack-introduction.md)
2223
- [堆栈的实现]()
24+
2325
### 队列
26+
2427
- [队列介绍](/docs/queue-introduction.md)
2528
- [队列的一个使用场景](/docs/queue-usage.md)
2629
- 数组模拟队列的思路
2730
- 数组模拟环形队列
2831

2932
## 链表
33+
3034
### 链表介绍
35+
3136
### 单链表应用实例
37+
3238
### 单链表大厂面试题
39+
3340
### 双向链表应用实例
41+
3442
### 单向环形链表应用场景
43+
3544
### 单向环形链表介绍
36-
### 约瑟夫问题
3745

46+
### 约瑟夫问题
3847

3948
##
49+
4050
### 栈的一个实际需求
51+
4152
### 栈的介绍
53+
4254
### 栈的应用场景
55+
4356
### 栈的快速入门
57+
4458
### 栈实现综合计算器
59+
4560
### 逆波兰计算器
61+
4662
### 中缀表达式转换为后缀表达式
4763

4864
## 递归
65+
4966
### 递归与递归调用机制
67+
5068
### 递归-迷宫问题
69+
5170
### 递归-八皇后问题(回溯算法)
5271

5372
## 排序算法
73+
5474
### 排序算法介绍
75+
5576
### 算法的时空复杂度
77+
5678
### 冒泡排序
79+
5780
### 选择排序
81+
5882
### 插入排序
83+
5984
### 希尔排序
85+
6086
### 快速排序
87+
6188
### 归并排序
89+
6290
### 基数排序
91+
6392
### 常用排序算法对比总结
6493

6594
## 查找算法
95+
6696
### 线性查找算法
97+
6798
### 二分查找算法
99+
68100
### 插值查找算法
101+
69102
### 斐波那契(黄金分割法)查找算法
70103

71104
## 哈希表
105+
72106
### 哈希表的基本介绍
107+
73108
### Google 公司的一个上机题
74109

75110
## 树结构
111+
76112
### 二叉树
113+
77114
- 为什么需求树这种数据结构
78115
- 二叉树遍历:前序、中序、后续
79116
- 二叉树查找与删除
80117

81118
### 顺序存储二叉树
119+
82120
- 顺序存储二叉树的概念
83121
- 顺序存储二叉树的遍历
84122
- 顺序存储二叉树应用实例
85123

86124
### 线索化二叉树
125+
87126
- 先看一个问题
88127
- 线索二叉树基本介绍
89128
- 线索二叉树应用案例
90129
- 遍历线索化二叉树
91130

92131
## 树结构应用
132+
93133
### 堆排序
134+
94135
### 赫夫曼树
136+
95137
### 赫夫曼编码
138+
96139
- 数据压缩与解压
97140
- 文件压缩与解压
98141

99142
### 二叉排序树
100143

101144
### 平衡二叉树(AVL 树)
145+
102146
- 左旋
103147
- 右旋
104148
- 双旋转
105149

106150
## 多路查找树
151+
107152
### 二叉树与 B 树
153+
108154
###
109-
### B 树、B+ 树和 B*
155+
156+
### B 树、B+ 树和 B\*
110157

111158
##
159+
112160
### 图基本介绍
161+
113162
### 图的表示方式
163+
114164
### 图的深度优先遍历
165+
115166
### 图的广度优先遍历
167+
116168
### 图的深度优先 VS 广度优先
117169

118170
## 10 大常用算法
171+
119172
### 二分查找算法(非递归)
173+
120174
### 分治算法
175+
121176
### 动态规划算法
177+
122178
### KMP 算法
179+
123180
### 贪心算法
181+
124182
### 普里姆算法
183+
125184
### 克鲁斯卡尔算法
185+
126186
### 迪杰斯特拉算法
187+
127188
### 弗洛伊德算法
128-
### 马踏棋盘算法
129189

190+
### 马踏棋盘算法

Diff for: docs/extra-page/cover.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
77
[Organization](https://github.com/doocs/doocs.github.io)
88
[Author](https://github.com/yanglbme)
9-
[Get Started](#必知必会:数据结构与算法)
9+
[Get Started](#必知必会:数据结构与算法)

Diff for: docs/linear-vs-nonlinear-data-structure.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# 如何区分数据结构中的线性结构与非线性结构?
2+
23
数据结构可以分成两种:
34

45
- 线性结构
@@ -7,12 +8,13 @@
78
下面就来简单聊聊这两种结构,至于具体的数据结构,后续的文章还会再做说明,别着急。
89

910
## 线性结构
11+
1012
先来说线性结构,怎么理解呢?线性结构的元素之间是一个接着一个连接,构成线性的形式。比如数组、链表、栈、队列等。
1113

1214
- 对于数组,元素依次顺序存放,紧挨着,是一种**顺序存储方式**
1315
- 对于链表,元素之间离散存储,通过指针彼此相连,是一种**链式存储方式**
1416
- 对于栈跟队列,可以用上面两种结构:数组或链表来实现。
1517

1618
## 非线性结构
17-
非线性结构,也挺好理解。非线性结构的元素可以有多个子元素与之关联。比如,树结构,一个节点可以有左右子节点;图结构,每个节点都可以与多个节点关联,从而构成复杂网络。
1819

20+
非线性结构,也挺好理解。非线性结构的元素可以有多个子元素与之关联。比如,树结构,一个节点可以有左右子节点;图结构,每个节点都可以与多个节点关联,从而构成复杂网络。

Diff for: docs/queue-introduction.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
### 按物理结构
1717

1818
- 数组队列
19-
- 链表队列
19+
- 链表队列

Diff for: docs/queue-usage.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44

55
在这里我们就用在网上买火车票这样一个例子来说明队列在计算机中的运用吧
66

7-
假若有用户A与用户B都想买一张西安去北京的票,但是当前票只剩下一张了,那么到底应该卖给谁呢?
7+
假若有用户 A 与用户 B 都想买一张西安去北京的票,但是当前票只剩下一张了,那么到底应该卖给谁呢?
88

9-
很简单,只需要看谁下单的早谁就先买到票,当两个用户同时下单时服务器会将当前请求买票的用户排一个**优先级队列**(优先级为时间),谁下单时间早谁就更有优先权得到票,那么后边得不到票的人就需要先等着,等到系统出现余票时再进一步分配,充分体现了**先来先服务**的原则。
9+
很简单,只需要看谁下单的早谁就先买到票,当两个用户同时下单时服务器会将当前请求买票的用户排一个**优先级队列**(优先级为时间),谁下单时间早谁就更有优先权得到票,那么后边得不到票的人就需要先等着,等到系统出现余票时再进一步分配,充分体现了**先来先服务**的原则。

Diff for: index.html

+63-49
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,66 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8">
5-
<title>算法与数据结构</title>
6-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7-
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css">
8-
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png">
9-
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png">
10-
</head>
11-
<body>
12-
<div id="app">本系列知识由 Doocs 开源社区总结发布</div>
13-
<script>
14-
window.$docsify = {
15-
name: '数据结构与算法',
16-
repo: 'doocs/data-structure-and-algorithm',
17-
maxLevel: 3,
18-
auto2top: true,
19-
coverpage: true,
20-
coverpage: 'docs/extra-page/cover.md',
21-
search: [
22-
'/'
23-
],
24-
plugins: [
25-
function (hook) {
26-
var footer = [
27-
'<hr/>',
28-
'<footer>',
29-
'<span>Copyright © 2018-2019 <a href="https://github.com/doocs" target="_blank">Doocs</a>. All rights reserved.</span><br>Welcome to join the <a href="https://github.com/doocs/intro" target="_blank">Doocs Open Source organization</a>.',
30-
'</footer>'
31-
].join('')
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>算法与数据结构</title>
6+
<meta
7+
name="viewport"
8+
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
9+
/>
10+
<link
11+
rel="stylesheet"
12+
href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css"
13+
/>
14+
<link
15+
rel="icon"
16+
type="image/png"
17+
sizes="32x32"
18+
href="images/favicon-32x32.png"
19+
/>
20+
<link
21+
rel="icon"
22+
type="image/png"
23+
sizes="16x16"
24+
href="images/favicon-16x16.png"
25+
/>
26+
</head>
27+
<body>
28+
<div id="app">本系列知识由 Doocs 开源社区总结发布</div>
29+
<script>
30+
window.$docsify = {
31+
name: "数据结构与算法",
32+
repo: "doocs/data-structure-and-algorithm",
33+
maxLevel: 3,
34+
auto2top: true,
35+
coverpage: true,
36+
coverpage: "docs/extra-page/cover.md",
37+
search: ["/"],
38+
plugins: [
39+
function (hook) {
40+
var footer = [
41+
"<hr/>",
42+
"<footer>",
43+
'<span>Copyright © 2018-2019 <a href="https://github.com/doocs" target="_blank">Doocs</a>. All rights reserved.</span><br>Welcome to join the <a href="https://github.com/doocs/intro" target="_blank">Doocs Open Source organization</a>.',
44+
"</footer>",
45+
].join("");
3246

33-
hook.afterEach(function (html) {
34-
return html + footer
35-
})
36-
}
37-
]
38-
}
39-
</script>
40-
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
41-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-c.min.js"></script>
42-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-bash.min.js"></script>
43-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-cpp.min.js"></script>
44-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-json.min.js"></script>
45-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-java.min.js"></script>
46-
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script>
47-
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code"></script>
48-
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.js"></script>
49-
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.js"></script>
50-
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.js"></script>
51-
</body>
52-
</html>
47+
hook.afterEach(function (html) {
48+
return html + footer;
49+
});
50+
},
51+
],
52+
};
53+
</script>
54+
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
55+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-c.min.js"></script>
56+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-bash.min.js"></script>
57+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-cpp.min.js"></script>
58+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-json.min.js"></script>
59+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-java.min.js"></script>
60+
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script>
61+
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code"></script>
62+
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.js"></script>
63+
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.js"></script>
64+
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.js"></script>
65+
</body>
66+
</html>

0 commit comments

Comments
 (0)