数据结构

  • 逻辑结构: 线性结构 (数组、链表)、树形结构 (二叉树、堆、B树)、图结构 (有向图、无向图)、集合、队列。
  • 存储结构 (物理结构): 数组的连续存储、链表的动态分配节点、树和图的邻接矩阵或邻接表表示。
  • 基本操作: 插入、删除、查找、更新、遍历等,以及时间复杂度和空间复杂度分析。

算法

  • 算法设计: 将问题解决步骤转化为计算机可执行的指令序列。
  • 算法特性: 输入、输出、有穷性、确定性、可行性。
  • 算法分类:
    • 排序算法: 冒泡排序、快速排序、归并排序。
    • 查找算法: 顺序查找、二分查找、哈希查找。
    • 图论算法: Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法。
    • 动态规划、贪心算法、回溯法、分支限界法。
  • 算法分析: 时间复杂度、空间复杂度分析。

学习算法与数据结构有助于理解程序内部原理,编写高效、稳定、易于维护的软件系统。