{"id":28408306,"url":"https://github.com/doocs/data-structure-and-algorithm","last_synced_at":"2025-06-29T19:31:17.928Z","repository":{"id":46601103,"uuid":"198026615","full_name":"doocs/data-structure-and-algorithm","owner":"doocs","description":"😍 学习数据结构与算法，夯实编程基础","archived":false,"fork":false,"pushed_at":"2025-04-23T12:45:37.000Z","size":232,"stargazers_count":145,"open_issues_count":0,"forks_count":46,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-06-09T12:30:01.005Z","etag":null,"topics":["algorithms","basic-programming","data-structures","doocs"],"latest_commit_sha":null,"homepage":"https://dsa.doocs.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doocs.png","metadata":{"funding":{"github":null,"patreon":null,"open_collective":"doocs","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-21T07:30:55.000Z","updated_at":"2025-04-29T16:32:32.000Z","dependencies_parsed_at":"2025-04-28T07:43:29.524Z","dependency_job_id":null,"html_url":"https://github.com/doocs/data-structure-and-algorithm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"doocs/doc-template","purl":"pkg:github/doocs/data-structure-and-algorithm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doocs%2Fdata-structure-and-algorithm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doocs%2Fdata-structure-and-algorithm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doocs%2Fdata-structure-and-algorithm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doocs%2Fdata-structure-and-algorithm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doocs","download_url":"https://codeload.github.com/doocs/data-structure-and-algorithm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doocs%2Fdata-structure-and-algorithm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260023042,"owners_count":22947288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","basic-programming","data-structures","doocs"],"created_at":"2025-06-02T02:37:45.090Z","updated_at":"2025-06-29T19:31:17.898Z","avatar_url":"https://github.com/doocs.png","language":"Java","readme":"# 必知必会：数据结构与算法\n\n[![java-ci](https://github.com/doocs/data-structure-and-algorithm/workflows/Java%20CI/badge.svg)](https://github.com/doocs/data-structure-and-algorithm/actions)\n[![prs-welcome](https://badgen.net/badge/PRs/welcome/green)](http://makeapullrequest.com)\n[![doocs-open-source-organization](https://badgen.net/badge/organization/join%20us/cyan)](https://doocs.github.io/#/?id=how-to-join)\n[![gitter](https://badgen.net/badge/gitter/chat/cyan)](https://gitter.im/doocs)\n\n\u003e `Algorithms` + `Data Structures` = `Programs`, — Niklaus Wirth\n\n目前来说，程序员的面试门槛越来越高，很多一线互联网公司的技术面试，都或多或少会考察数据结构与算法相关的题目，掌握数据结构与算法尤为重要。如果你不想永远做一名“代码搬运工”，那就花点时间一起来学习吧。本项目涵盖数据结构与算法所有知识点，内容将在后续不断更新，欢迎持续关注项目最新动态。\n\n## 数据结构的划分\n\n- [如何区分数据结构中的线性结构与非线性结构？](/docs/linear-vs-nonlinear-data-structure.md)\n\n## 稀疏矩阵和队列\n\n- [说一说什么是稀疏矩阵？稀疏矩阵有哪些存储方式？](/docs/the-introduction-to-sparse-matrix.md)\n\n### 堆栈\n\n- [堆栈](/docs/stack-introduction.md)\n- [堆栈的实现]()\n\n### 队列\n\n- [队列介绍](/docs/queue-introduction.md)\n- [队列的一个使用场景](/docs/queue-usage.md)\n- 数组模拟队列的思路\n- 数组模拟环形队列\n\n## 链表\n\n### 链表介绍\n\n### 单链表应用实例\n\n### 单链表大厂面试题\n\n### 双向链表应用实例\n\n### 单向环形链表应用场景\n\n### 单向环形链表介绍\n\n### 约瑟夫问题\n\n## 栈\n\n### 栈的一个实际需求\n\n### 栈的介绍\n\n### 栈的应用场景\n\n### 栈的快速入门\n\n### 栈实现综合计算器\n\n### 逆波兰计算器\n\n### 中缀表达式转换为后缀表达式\n\n## 递归\n\n### 递归与递归调用机制\n\n### 递归-迷宫问题\n\n### 递归-八皇后问题（回溯算法）\n\n## 排序算法\n\n### 排序算法介绍\n\n### 算法的时空复杂度\n\n### 冒泡排序\n\n### 选择排序\n\n### 插入排序\n\n### 希尔排序\n\n### 快速排序\n\n### 归并排序\n\n### 基数排序\n\n### 常用排序算法对比总结\n\n## 查找算法\n\n### 线性查找算法\n\n### 二分查找算法\n\n### 插值查找算法\n\n### 斐波那契（黄金分割法）查找算法\n\n## 哈希表\n\n### 哈希表的基本介绍\n\n### Google 公司的一个上机题\n\n## 树结构\n\n### 二叉树\n\n- 为什么需求树这种数据结构\n- 二叉树遍历：前序、中序、后续\n- 二叉树查找与删除\n\n### 顺序存储二叉树\n\n- 顺序存储二叉树的概念\n- 顺序存储二叉树的遍历\n- 顺序存储二叉树应用实例\n\n### 线索化二叉树\n\n- 先看一个问题\n- 线索二叉树基本介绍\n- 线索二叉树应用案例\n- 遍历线索化二叉树\n\n## 树结构应用\n\n### 堆排序\n\n### 赫夫曼树\n\n### 赫夫曼编码\n\n- 数据压缩与解压\n- 文件压缩与解压\n\n### 二叉排序树\n\n### 平衡二叉树（AVL 树）\n\n- 左旋\n- 右旋\n- 双旋转\n\n## 多路查找树\n\n### 二叉树与 B 树\n\n### 树\n\n### B 树、B+ 树和 B\\* 树\n\n## 图\n\n### 图基本介绍\n\n### 图的表示方式\n\n### 图的深度优先遍历\n\n### 图的广度优先遍历\n\n### 图的深度优先 VS 广度优先\n\n## 10 大常用算法\n\n### 二分查找算法（非递归）\n\n### 分治算法\n\n### 动态规划算法\n\n### KMP 算法\n\n### 贪心算法\n\n### 普里姆算法\n\n### 克鲁斯卡尔算法\n\n### 迪杰斯特拉算法\n\n### 弗洛伊德算法\n\n### 马踏棋盘算法\n","funding_links":["https://opencollective.com/doocs"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoocs%2Fdata-structure-and-algorithm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoocs%2Fdata-structure-and-algorithm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoocs%2Fdata-structure-and-algorithm/lists"}