# data_structure **Repository Path**: pingli6/data_structure ## Basic Information - **Project Name**: data_structure - **Description**: 数据结构相关代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-20 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据结构与算法实现 这是一套用 C/C++ 实现的各种基础数据结构和算法的教程代码仓库。包含了从底层到高级的多种常用数据结构,适合学习和参考。 ## 项目简介 本仓库涵盖了以下数据结构的实现: ### 线性结构 - **SeqList(顺序表)**:动态顺序表实现,支持增删改查 - **List(双向链表)**:双向循环链表 - **SList(单向链表)**:单链表实现及通讯录管理系统 - **Stack(栈)**:基于数组的栈实现 - **Queue(队列)**:队列实现,包括循环队列 ### 树形结构 - **BinaryTree(二叉树)**:二叉树基本操作 - **BinarySearchTree(二叉搜索树)**:二分搜索树 - **AVLTree(平衡二叉树)**:AVL 平衡树实现 - **RBTree(红黑树)**:红黑树实现 ### 堆结构 - **Heap(堆)**:堆结构,用于优先队列和堆排序 ### 哈希表 - **Hash(哈希表)**:哈希表实现 - **unordered_map(无序映射)**:基于哈希表的 map/set ### 排序算法 - **Sort(排序)**:包含多种排序算法: - 插入排序 - 希尔排序 - 选择排序 - 冒泡排序 - 堆排序 - 快速排序(多版本实现) - 归并排序 - 计数排序 ### 容器适配器 - **stack_queue**:模板实现的栈和队列 ### 高级容器 - **string**:自定义字符串类 - **vector**:自定义动态数组容器 - **map**:基于红黑树的 map 和 set ## 目录结构 ``` ├── AVLTree/ # AVL 平衡树 ├── BinarySearchTree/ # 二叉搜索树 ├── BinaryTree/ # 二叉树 ├── Hash/ # 哈希表 ├── Heap/ # 堆 ├── List/ # 链表 ├── Queue/ # 队列 ├── RBTree/ # 红黑树 ├── SList/ # 单链表 ├── SeqList/ # 顺序表 ├── Sort/ # 排序算法 ├── Stack/ # 栈 ├── map/ # map/set 容器 ├── stack_queue/ # 模板栈队列 ├── string/ # 字符串 ├── unordered_map/ # 无序容器 └── vector/ # 动态数组 ``` ## 技术栈 - **语言**:C / C++ - **编译环境**:Visual Studio / GCC / Clang ## 使用说明 每个模块目录下都包含了对应的 `.h`(头文件)、`.c`/`.cpp`(源文件)和 `test.cpp`(测试文件)。 ### 编译运行示例 **使用 GCC 编译:** ```bash # 示例:编译运行堆排序测试 gcc Heap/test.c Heap/Heap.c -o heap_test ./heap_test # 示例:编译运行排序测试 gcc Sort/test.c Sort/Sort.c -o sort_test ./sort_test ``` **使用 G++ 编译 C++ 代码:** ```bash g++ -std=c++11 AVLTree/AVLTree/test.cpp -o avl_test ./avl_test ``` ## 内容特点 1. **纯手工实现**:所有数据结构均为手动实现,不依赖 STL(除了 vector/map 测试部分) 2. **注释详细**:关键函数都有中文注释,便于理解 3. **测试完善**:每个模块都配有测试代码可直接运行验证 4. **循序渐进**:从基础的顺序表、链表到高级的红黑树、哈希表 ## 适用人群 - 计算机专业学生 - 准备面试的程序员 - 对数据结构感兴趣的学习者 ## 扩展学习 在学习本仓库代码的基础上,还可以进一步了解: - B+ 树的实现 - 跳表的实现 - 字典树(Trie)的实现 - 线段树的实现 - 并查集的实现 ## 许可证 本仓库仅供学习交流使用。