# data-structure-and-algorithm **Repository Path**: ivemcel/data-structure-and-algorithm ## Basic Information - **Project Name**: data-structure-and-algorithm - **Description**: 数据结构与算法分类总结 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-02-14 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据结构与算法 本项目系统地实现了各种经典数据结构与算法,并提供了丰富的 LeetCode 题目练习。所有代码均使用 Java 编写,适合作为数据结构和算法学习的参考资料。 ## 项目结构 ``` ├── Array/ # 数组相关实现与题目 ├── BST/ # 二叉搜索树 ├── BinarySearch/ # 二分查找 ├── DP/ # 动态规划 ├── HashTable/ # 哈希表 ├── LinearSearch/ # 线性查找 ├── LinkedList/ # 链表 ├── Map/ # 映射 ├── MaxHeap/ # 最大堆与优先队列 ├── Queue/ # 队列 ├── RedBlackTree/ # 红黑树 ├── SegmentTree/ # 线段树 ├── Sort/ # 排序算法 ├── Stack/ # 栈 ├── Trie/ # 字典树 └── UnionFind/ # 并查集 ``` ## 主要内容 ### 基础数据结构 - **Array** - 动态数组实现 - **LinkedList** - 链表(单向链表、双向链表) - **Stack** - 栈(数组实现、链表实现) - **Queue** - 队列(数组队列、循环队列、链表队列) - **Map** - 映射(链表实现、BST 实现) ### 高级数据结构 - **BST** - 二叉搜索树 - **AVLTree** - AVL 平衡树 - **RBTree** - 红黑树 - **MaxHeap** - 最大堆 - **SegmentTree** - 线段树 - **Trie** - 字典树/前缀树 - **UnionFind** - 并查集 ### 排序算法 - **SelectionSort** - 选择排序 - **BubbleSort** - 冒泡排序 - **InsertionSort** - 插入排序 - **MergeSort** - 归并排序 - **QuickSort** - 快速排序 - **HeapSort** - 堆排序 ### 查找算法 - **LinearSearch** - 线性查找 - **BinarySearch** - 二分查找及其变型 ### 算法思想 - **DP** - 动态规划题目 - **HashTable** - 哈希表应用 ## LeetCode 题目涵盖 项目包含大量 LeetCode 题目解法,涵盖以下类型: | 模块 | 题目 | |------|------| | 数组 | 26, 27, 80, 189, 283, 438, 567, 76 等 | | 链表 | 19, 203, 206, 23, 25, 92 等 | | 二叉树 | 199, 257, 297, 1135 等 | | 二分查找 | 4, 33, 34, 69, 74, 162, 378 等 | | 栈 | 42, 84, 402, 496 等 | | 动态规划 | 97, 115, 516, 1143 等 | ## 快速开始 ### 编译运行 ```bash # 进入相应模块目录,例如 Array cd Array # 编译 javac -d out/production/Array src/*.java # 运行 java -cp out/production/Array Main ``` ### 在 IDE 中运行 1. 使用 IntelliJ IDEA 或 Eclipse 打开项目 2. 各个目录为独立的模块项目 3. 运行各模块中的 `Main` 类即可查看演示 ## 运行环境 - Java 8 或更高版本 - IntelliJ IDEA(推荐) ## 目录说明 各模块目录结构一致: - `src/` - 源代码目录 - `out/` - 编译输出目录 - `lib/` - 依赖库目录(如有) ## 学习建议 1. **入门阶段**:从 LinearSearch、Array、Sort 开始 2. **进阶阶段**:学习链表、栈、队列、树等数据结构 3. **高级阶段**:深入理解红黑树、线段树、字典树、并查集等 4. **实战练习**:通过 LeetCode 题目巩固知识 ## 许可证 本项目仅供学习交流使用。 ## 贡献 欢迎提交 Issue 和 Pull Request 来完善项目。