《数据结构》考前复习笔记


一、基础概念与算法分析
  1. 数据结构三要素
    • 逻辑结构:集合(无序)、线性(一对一)、树形(一对多)、图状(多对多)
    • 存储结构:顺序(数组)、链式(指针)、索引(目录)、哈希(键值映射)
    • 数据运算:增删改查、排序等操作的时间复杂度分析 6
  2. 算法特性与评价
    • 五大特性:有穷性、确定性、可行性、输入、输出
    • 时间复杂度:关注最坏情况(如快速排序最坏O(n²))
    • 空间复杂度:递归算法需注意栈空间消耗(如斐波那契数列递归O(n)) 16

二、线性结构
  1. 顺序表 vs 链表

    特性顺序表链表
    存储方式连续内存离散节点
    插入/删除时间复杂度O(n)O(1)(已知位置)
    适用场景随机访问频繁动态数据频繁增删
  2. 栈与队列

    • 栈(LIFO):函数调用栈、括号匹配(代码示例:push/pop操作)
    • 队列(FIFO):层次遍历、缓冲区管理,注意循环队列判空/满条件((rear+1)%maxSize == front) 35

三、树与二叉树
  1. 二叉树核心性质
    • 第i层最多有2^(i-1)个节点,深度为h的树最多有2^h-1个节点
    • 遍历方式
      • 前序:根→左→右(用于复制树结构)
      • 中序:左→根→右(二叉搜索树有序输出)
      • 后序:左→右→根(计算表达式树) 24
  2. 平衡树与哈夫曼树
    • AVL树:任意节点左右子树高度差≤1,通过旋转(LL/RR/LR/RL)保持平衡
    • 哈夫曼树:最小带权路径长度,构造方法:每次合并权值最小的两棵树 45

四、图
  1. 存储方式对比

    类型邻接矩阵邻接表
    空间复杂度O(n²)O(n+e)
    适用场景稠密图稀疏图
  2. 关键算法

    • 最短路径:Dijkstra(单源无负权)、Floyd(多源动态规划)
    • 最小生成树:Prim(贪心,适合稠密图)、Kruskal(并查集,适合稀疏图)
    • 拓扑排序:AOV网中用队列实现,检测有向图是否有环 47

五、查找与排序
  1. 查找算法对比

    算法平均时间复杂度适用条件
    顺序查找O(n)无序表
    二分查找O(log n)有序顺序表
    哈希查找O(1)冲突处理影响效率
  2. 排序算法总结

    算法时间复杂度(平均)稳定性空间复杂度
    快速排序O(n log n)不稳定O(log n)
    归并排序O(n log n)稳定O(n)
    堆排序O(n log n)不稳定O(1)

六、实验与代码要点
  1. 链表操作代码

  2. 栈实现括号匹配

    • 左括号入栈,右括号时弹出栈顶元素并匹配,栈空或不匹配则失败 5

七、复习建议
  1. 重点章节:树与二叉树(30%)、图(25%)、排序(20%)
  2. 易错点
    • 循环队列队满条件
    • 平衡树旋转类型判断
    • 哈希冲突解决方法(开放定址法 vs 链地址法)
  3. 刷题策略:优先掌握近3年真题中高频考点(如二叉树遍历、快速排序过程) 9

提示:更多代码实现和习题解析可参考69中的实验手册及历年考题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值