# data-structure-and-algorithm **Repository Path**: guohang567/data-structure-and-algorithm ## Basic Information - **Project Name**: data-structure-and-algorithm - **Description**: No description available - **Primary Language**: Unknown - **License**: CC-BY-SA-4.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-04-27 - **Last Updated**: 2021-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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 算法 ### 贪心算法 ### 普里姆算法 ### 克鲁斯卡尔算法 ### 迪杰斯特拉算法 ### 弗洛伊德算法 ### 马踏棋盘算法