这个项目包含了常见的数据结构与算法的实现及其相关的示例代码。旨在帮助学习和理解这些基础概念,并为实际应用提供参考。
数组是一种线性数据结构,存储在连续的内存位置。它允许随机访问元素,并且支持高效的按索引访问。
链表是一种线性数据结构,其中的元素按节点存储,每个节点包含数据和一个指向下一个节点的引用。
栈是一种线性数据结构,遵循后进先出(LIFO)的原则。操作主要包括压栈(push)和弹栈(pop)。
队列是一种线性数据结构,遵循先进先出(FIFO)的原则。操作主要包括入队(enqueue)和出队(dequeue)。
树是一种分层数据结构,由节点组成。每个节点包含数据和指向子节点的引用。常见的树结构有二叉树、二叉搜索树、AVL树等。
图是一种非线性数据结构,由节点和边组成。节点表示实体,边表示实体之间的关系。
哈希表是一种通过哈希函数将键映射到值的数据结构,支持高效的插入、删除和查找操作。
- 冒泡排序
- 选择排序
- 插入排序
- 快速排序
- 归并排序
- 线性搜索
- 二分搜索
- 深度优先搜索(DFS)
- 广度优先搜索(BFS)
动态规划是一种将问题分解为子问题,通过存储子问题的解来优化计算的算法。
分治算法是一种递归算法,将问题分解为更小的子问题,然后合并子问题的解来解决原问题。
贪心算法是一种每一步都选择最优解的算法,适用于局部最优解能导出全局最优解的情况。
回溯算法是一种递归算法,通过尝试不同的解决方案并回溯来寻找问题的所有可能解。
欢迎贡献代码!请提交 pull request 或报告问题。如果你有新的数据结构或算法实现,欢迎分享。
本项目基于 MIT 许可证开源。详情请参见 LICENSE。