数据结构与算法
- 数组与链表:数组是按连续存储方式分配的,支持快速随机访问;链表由节点组成,节点通过指针连接,支持动态插入与删除操作。链表分为单链表、双向链表和循环链表,常用于需要频繁修改的场景。
- 栈与队列:栈是后进先出的数据结构,常用于表达式求解、递归调用等场景;队列是先进先出的数据结构,用于任务调度、缓冲区等场景。特殊队列如双端队列、优先队列也被广泛使用。
- 树与二叉树:树是一种分层数据结构,二叉树是其特例,每个节点最多有两个子节点。二叉搜索树、平衡二叉树、堆等结构在查找、排序、优先级队列等场景中应用广泛。
- 图与图的遍历:图由顶点和边组成,可分为有向图和无向图。深度优先搜索(DFS)和广度优先搜索(BFS)是两种基本遍历方法,应用于最短路径、连通性分析等问题。
- 排序与查找算法:常见排序算法包括冒泡排序、快速排序、归并排序等。查找算法如二分查找、哈希查找等用于提高查找效率。选择合适的算法取决于数据规模和应用场景。
- 动态规划与贪心算法:动态规划通过记忆化递归或自底向上的方法解决最优子结构问题;贪心算法通过每次选择局部最优解来逼近全局最优解,常用于最小生成树、背包问题等。