# dsa-notes **Repository Path**: zhurui536/dsa-notes ## Basic Information - **Project Name**: dsa-notes - **Description**: No description available - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-04 - **Last Updated**: 2025-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

License GitHub Commits

GitHub Watchers GitHub Stars GitHub Forks

# 数据结构与算法 > Data Structure and Algorithms Tags: `Data Structure` `Algorithms` `Python` 本仓库 **[持续更新中]** 笔记与代码根据书本 [《数据结构与算法 Python 语言实现》](https://book.douban.com/subject/30323938/) 整理。我的知乎专栏 [isKage 数据结构与算法](https://zhuanlan.zhihu.com/column/c_1876599117028925442) ;我的个人博客 [isKage 数据结构与算法](https://blog.iskage.online/categories/数据结构与算法/) 。本仓库笔记包括的是通用、常见的数据结构与算法。编程语言并不重要,为简单实现采用的是 `Python` 语言,读者可根据自己的偏好自主实现。 基于本仓库的知识,综合使用各类基础数据结构与算法,实现了一个“商业决策平台的智能数据管理系统”的课程项目,[DSA-PJ](https://github.com/isKage/bidms-dsa-pj) 。 ## 目录 1. Python 基础:面向对象程序设计 - 笔记见 [Python 基础:面向对象程序设计](./lec1_intro/note01_Python面向对象.md) - 所有相关材料均在文件夹 [lec1](./lec1_intro) 2. 算法分析:计算原子与时间复杂度 - 笔记见 [算法分析:计算原子与时间复杂度](./lec2_algo_analysis/note02_算法分析.md) - 所有相关材料均在文件夹 [lec2](./lec2_algo_analysis) 3. 递归算法 - 笔记见 [递归算法](./lec3_recursion/note03_递归.md) - 所有相关材料均在文件夹 [lec3](./lec3_recursion) 4. 数组 - 笔记见 [基于数组的序列](./lec4_array/note04_基于数组的序列.md) - 所有相关材料均在文件夹 [lec4](./lec4_array) 5. 链表 - 第一部分笔记见 [链表 1 单向链表、循环链表和双向链表](./lec5_linked_list/note05_链表1.md) - 第二部分笔记见 [链表 2 链表位置信息、链表的插入排序和 More-To-Front 启发式算法](./lec5_linked_list/note05_链表2.md) - 所有相关材料均在文件夹 [lec5](./lec5_linked_list) 6. 栈和队列 - 第一部分笔记见 [栈 与 回溯算法 (深度优先)](./lec6_stack_queue/note06_栈.md) - 第二部分笔记见 [队列 与 洪水算法 (广度优先)](./lec6_stack_queue/note06_队列.md) - 所有相关材料均在文件夹 [lec6](./lec6_stack_queue) 7. 树 - 第一部分笔记见 [树与二叉树](./lec7_tree/note07_树与二叉树.md) - 第二部分笔记见 [树的遍历算法与实际应用](./lec7_tree/note07_树的遍历算法.md) - 所有相关材料均在文件夹 [lec7](./lec7_tree) 8. 优先级队列和堆 - 笔记见 [优先级队列 堆 堆排序](./lec8_priority_queue_heap/note08_优先级队列和堆.md) - 所有相关材料均在文件夹 [lec8](./lec8_priority_queue_heap) 9. 映射、哈希表、跳跃表 - 第一部分笔记见 [无序映射 哈希函数 哈希表](./lec9_map_hash/note09_映射与哈希.md) - 第二部分笔记见 [有序映射 跳跃表](./lec9_map_hash/note09_有序映射.md) - 所有相关材料均在文件夹 [lec9](./lec9_map_hash) 10. 搜索树实现有序映射 - 第一部分笔记见 [搜索树:二叉搜索树、平衡搜索树、AVL 树](./lec10_search_tree/note10_搜索树1.md) - 第二部分笔记见 [搜索树:伸展树、红黑树](./lec10_search_tree/note10_搜索树2.md) - 所有相关材料均在文件夹 [lec10](./lec10_search_tree) 11. 排序与选择 - 笔记见 [排序与选择](./lec11_sort_select/note11_排序与选择.md) - 所有相关材料均在文件夹 [lec11](./lec11_sort_select) 12. 图与图算法 - 第一部分笔记见 [图算法:图与图的遍历算法](./lec12_graph/note12_图算法1.md) - 第二部分笔记见 [图算法:最短路径、传递闭包和最小生成树](./lec12_graph/note12_图算法2.md) - 所有相关材料均在文件夹 [lec12](./lec12_graph) 13. 文本处理 - 第一部分笔记见 [文本处理:模式匹配 KMP 与文本压缩 Huffman 编码](./lec13_text/note13_text1.md) - 第二部分笔记见 文本处理:字典树 待更新 - 所有相关材料均在文件夹 [lec13](./lec13_text) ## 习题 习题文件夹为 [Assignments](./Assignments) 1. 第一次习题:有关 `introduction`, `alorithm`, `recursion`, `array`, `linked list` and `stack` 见 [HW1](./Assignments/HW1/hw1.md) 2. 第二次习题:有关 `linked list` `tree` `binary tree` `priority queue` `heap` and `heap sort` 见 [HW2](./Assignments/HW2/hw2.md) 3. 第三次习题:有关 `map` `hash` `search tree` `AVL` `sort` `merge & quick sort` and `select` 见 [HW3](./Assignments/HW3/hw3.md) 4. 第四次习题:有关 `graph` `text` `dynamic programming` 见 [HW4](./Assignments/HW4/hw4.md) ## 友链 1. isKage 的知乎主页 [Zhihu](https://www.zhihu.com/people/iskage) 2. isKage 的个人博客 [isKage\`Blog](https://blog.iskage.online/) 3. 其他各类笔记/资料整理 [Notes Navigation](https://zhuanlan.zhihu.com/p/24863956479) ## Stars [![Stargazers over time](https://starchart.cc/isKage/dsa-notes.svg?variant=adaptive)](https://starchart.cc/isKage/dsa-notes)