generated from doocs/doc-template
-
-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b5b28bb
commit 0a95366
Showing
6 changed files
with
138 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,129 +1,190 @@ | ||
# 必知必会:数据结构与算法 | ||
|
||
[](https://github.com/doocs/data-structure-and-algorithm/actions) | ||
[](http://makeapullrequest.com) | ||
[](https://doocs.github.io/#/?id=how-to-join) | ||
[](https://gitter.im/doocs) | ||
|
||
|
||
> `Algorithms` + `Data Structures` = `Programs`, — Niklaus Wirth | ||
> `Algorithms` + `Data Structures` = `Programs`, — Niklaus Wirth | ||
目前来说,程序员的面试门槛越来越高,很多一线互联网公司的技术面试,都或多或少会考察数据结构与算法相关的题目,掌握数据结构与算法尤为重要。如果你不想永远做一名“代码搬运工”,那就花点时间一起来学习吧。本项目涵盖数据结构与算法所有知识点,内容将在后续不断更新,欢迎持续关注项目最新动态。 | ||
|
||
|
||
|
||
## 数据结构的划分 | ||
|
||
- [如何区分数据结构中的线性结构与非线性结构?](/docs/linear-vs-nonlinear-data-structure.md) | ||
|
||
## 稀疏矩阵和队列 | ||
|
||
- [说一说什么是稀疏矩阵?稀疏矩阵有哪些存储方式?](/docs/the-introduction-to-sparse-matrix.md) | ||
|
||
### 堆栈 | ||
|
||
- [堆栈](/docs/stack-introduction.md) | ||
- [堆栈的实现]() | ||
|
||
### 队列 | ||
|
||
- [队列介绍](/docs/queue-introduction.md) | ||
- [队列的一个使用场景](/docs/queue-usage.md) | ||
- 数组模拟队列的思路 | ||
- 数组模拟环形队列 | ||
|
||
## 链表 | ||
|
||
### 链表介绍 | ||
|
||
### 单链表应用实例 | ||
|
||
### 单链表大厂面试题 | ||
|
||
### 双向链表应用实例 | ||
|
||
### 单向环形链表应用场景 | ||
|
||
### 单向环形链表介绍 | ||
### 约瑟夫问题 | ||
|
||
### 约瑟夫问题 | ||
|
||
## 栈 | ||
|
||
### 栈的一个实际需求 | ||
|
||
### 栈的介绍 | ||
|
||
### 栈的应用场景 | ||
|
||
### 栈的快速入门 | ||
|
||
### 栈实现综合计算器 | ||
|
||
### 逆波兰计算器 | ||
|
||
### 中缀表达式转换为后缀表达式 | ||
|
||
## 递归 | ||
|
||
### 递归与递归调用机制 | ||
|
||
### 递归-迷宫问题 | ||
|
||
### 递归-八皇后问题(回溯算法) | ||
|
||
## 排序算法 | ||
|
||
### 排序算法介绍 | ||
|
||
### 算法的时空复杂度 | ||
|
||
### 冒泡排序 | ||
|
||
### 选择排序 | ||
|
||
### 插入排序 | ||
|
||
### 希尔排序 | ||
|
||
### 快速排序 | ||
|
||
### 归并排序 | ||
|
||
### 基数排序 | ||
|
||
### 常用排序算法对比总结 | ||
|
||
## 查找算法 | ||
|
||
### 线性查找算法 | ||
|
||
### 二分查找算法 | ||
|
||
### 插值查找算法 | ||
|
||
### 斐波那契(黄金分割法)查找算法 | ||
|
||
## 哈希表 | ||
|
||
### 哈希表的基本介绍 | ||
|
||
### Google 公司的一个上机题 | ||
|
||
## 树结构 | ||
|
||
### 二叉树 | ||
|
||
- 为什么需求树这种数据结构 | ||
- 二叉树遍历:前序、中序、后续 | ||
- 二叉树查找与删除 | ||
|
||
### 顺序存储二叉树 | ||
|
||
- 顺序存储二叉树的概念 | ||
- 顺序存储二叉树的遍历 | ||
- 顺序存储二叉树应用实例 | ||
|
||
### 线索化二叉树 | ||
|
||
- 先看一个问题 | ||
- 线索二叉树基本介绍 | ||
- 线索二叉树应用案例 | ||
- 遍历线索化二叉树 | ||
|
||
## 树结构应用 | ||
|
||
### 堆排序 | ||
|
||
### 赫夫曼树 | ||
|
||
### 赫夫曼编码 | ||
|
||
- 数据压缩与解压 | ||
- 文件压缩与解压 | ||
|
||
### 二叉排序树 | ||
|
||
### 平衡二叉树(AVL 树) | ||
|
||
- 左旋 | ||
- 右旋 | ||
- 双旋转 | ||
|
||
## 多路查找树 | ||
|
||
### 二叉树与 B 树 | ||
|
||
### 树 | ||
### B 树、B+ 树和 B* 树 | ||
|
||
### B 树、B+ 树和 B\* 树 | ||
|
||
## 图 | ||
|
||
### 图基本介绍 | ||
|
||
### 图的表示方式 | ||
|
||
### 图的深度优先遍历 | ||
|
||
### 图的广度优先遍历 | ||
|
||
### 图的深度优先 VS 广度优先 | ||
|
||
## 10 大常用算法 | ||
|
||
### 二分查找算法(非递归) | ||
|
||
### 分治算法 | ||
|
||
### 动态规划算法 | ||
|
||
### KMP 算法 | ||
|
||
### 贪心算法 | ||
|
||
### 普里姆算法 | ||
|
||
### 克鲁斯卡尔算法 | ||
|
||
### 迪杰斯特拉算法 | ||
|
||
### 弗洛伊德算法 | ||
### 马踏棋盘算法 | ||
|
||
### 马踏棋盘算法 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,4 +16,4 @@ | |
### 按物理结构 | ||
|
||
- 数组队列 | ||
- 链表队列 | ||
- 链表队列 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,66 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<title>算法与数据结构</title> | ||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> | ||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png"> | ||
</head> | ||
<body> | ||
<div id="app">本系列知识由 Doocs 开源社区总结发布</div> | ||
<script> | ||
window.$docsify = { | ||
name: '数据结构与算法', | ||
repo: 'doocs/data-structure-and-algorithm', | ||
maxLevel: 3, | ||
auto2top: true, | ||
coverpage: true, | ||
coverpage: 'docs/extra-page/cover.md', | ||
search: [ | ||
'/' | ||
], | ||
plugins: [ | ||
function (hook) { | ||
var footer = [ | ||
'<hr/>', | ||
'<footer>', | ||
'<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>.', | ||
'</footer>' | ||
].join('') | ||
<head> | ||
<meta charset="UTF-8" /> | ||
<title>算法与数据结构</title> | ||
<meta | ||
name="viewport" | ||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" | ||
/> | ||
<link | ||
rel="stylesheet" | ||
href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css" | ||
/> | ||
<link | ||
rel="icon" | ||
type="image/png" | ||
sizes="32x32" | ||
href="images/favicon-32x32.png" | ||
/> | ||
<link | ||
rel="icon" | ||
type="image/png" | ||
sizes="16x16" | ||
href="images/favicon-16x16.png" | ||
/> | ||
</head> | ||
<body> | ||
<div id="app">本系列知识由 Doocs 开源社区总结发布</div> | ||
<script> | ||
window.$docsify = { | ||
name: "数据结构与算法", | ||
repo: "doocs/data-structure-and-algorithm", | ||
maxLevel: 3, | ||
auto2top: true, | ||
coverpage: true, | ||
coverpage: "docs/extra-page/cover.md", | ||
search: ["/"], | ||
plugins: [ | ||
function (hook) { | ||
var footer = [ | ||
"<hr/>", | ||
"<footer>", | ||
'<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>.', | ||
"</footer>", | ||
].join(""); | ||
|
||
hook.afterEach(function (html) { | ||
return html + footer | ||
}) | ||
} | ||
] | ||
} | ||
</script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-c.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-bash.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-cpp.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-json.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-java.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.js"></script> | ||
</body> | ||
</html> | ||
hook.afterEach(function (html) { | ||
return html + footer; | ||
}); | ||
}, | ||
], | ||
}; | ||
</script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-c.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-bash.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-cpp.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-json.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-java.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.js"></script> | ||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.js"></script> | ||
</body> | ||
</html> |