https://github.com/doocs/data-structure-and-algorithm
😍 学习数据结构与算法,夯实编程基础
https://github.com/doocs/data-structure-and-algorithm
algorithms basic-programming data-structures doocs
Last synced: 2 days ago
JSON representation
😍 学习数据结构与算法,夯实编程基础
- Host: GitHub
- URL: https://github.com/doocs/data-structure-and-algorithm
- Owner: doocs
- License: cc-by-sa-4.0
- Created: 2019-07-21T07:30:55.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-04-23T12:45:37.000Z (2 months ago)
- Last Synced: 2025-06-09T12:30:01.005Z (22 days ago)
- Topics: algorithms, basic-programming, data-structures, doocs
- Language: Java
- Homepage: https://dsa.doocs.org
- Size: 227 KB
- Stars: 145
- Watchers: 13
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 必知必会:数据结构与算法
[](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
目前来说,程序员的面试门槛越来越高,很多一线互联网公司的技术面试,都或多或少会考察数据结构与算法相关的题目,掌握数据结构与算法尤为重要。如果你不想永远做一名“代码搬运工”,那就花点时间一起来学习吧。本项目涵盖数据结构与算法所有知识点,内容将在后续不断更新,欢迎持续关注项目最新动态。
## 数据结构的划分
- [如何区分数据结构中的线性结构与非线性结构?](/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\* 树
## 图
### 图基本介绍
### 图的表示方式
### 图的深度优先遍历
### 图的广度优先遍历
### 图的深度优先 VS 广度优先
## 10 大常用算法
### 二分查找算法(非递归)
### 分治算法
### 动态规划算法
### KMP 算法
### 贪心算法
### 普里姆算法
### 克鲁斯卡尔算法
### 迪杰斯特拉算法
### 弗洛伊德算法
### 马踏棋盘算法