An open API service indexing awesome lists of open source software.

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

😍 学习数据结构与算法,夯实编程基础

Awesome Lists containing this project

README

        

# 必知必会:数据结构与算法

[![java-ci](https://github.com/doocs/data-structure-and-algorithm/workflows/Java%20CI/badge.svg)](https://github.com/doocs/data-structure-and-algorithm/actions)
[![prs-welcome](https://badgen.net/badge/PRs/welcome/green)](http://makeapullrequest.com)
[![doocs-open-source-organization](https://badgen.net/badge/organization/join%20us/cyan)](https://doocs.github.io/#/?id=how-to-join)
[![gitter](https://badgen.net/badge/gitter/chat/cyan)](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 算法

### 贪心算法

### 普里姆算法

### 克鲁斯卡尔算法

### 迪杰斯特拉算法

### 弗洛伊德算法

### 马踏棋盘算法