山东大学软件学院数据结构

数据结构知识梳理

山东大学数据结构算法PPT:
链接:https://pan.baidu.com/s/1tkxsM80YmZO9_f9OeAGziw
提取码:7an5
教材:《数据结构、算法与应用 C++语言描述》第二版

山东大学数据结构期末考试知识点梳理

题型

  1. 简答题
  2. 算法题(用C++写出算法)

题的量不算太小,即要求不仅掌握这些内容还要熟练掌握———郭老师

第一章

1.给了一个问题,可以用递归解决,熟练的运用递归,可以将一个递归的改为非递归的

第二章

1.时间复杂性和空间复杂性,给一个算法,能分析时间复杂性
2.熟练掌握各种排序和搜索算法
3.矩阵的运算

第三章

1.给一个算法,熟练使用渐进符号

第四章

1.了解时间性能

第五章

1.掌握用数组描述线性表的搜索、插入、删除等操作及它们的优缺点

第六章

1.线性表的链表描述,会使用链表,相对于数组描述的优缺点
2.箱子排序和基数排序
3.并查集(链表和数组,熟练掌握基本方法,时间复杂性)

第七章

1.用数组描述的矩阵的映射关系、不同矩阵的表示方法
2.特殊矩阵的基本操作
3.稀疏矩阵的基本运算(相加、转置)

第八章

1.栈的特性,基本描述(链表和数组)
2.栈的应用(熟练掌握)

第九章

1.队列的特性,基本描述(链表和数组)
2.熟练掌握数组描述的映射方式,时间复杂性(链表和数组)
3.链表描述的特定(入队和出队)
4.队列的应用

第十章

1.跳表和散列的数据结构
2.跳表和散列的优缺点
3.跳表和散列的时间
4.跳表的插入和删除

第十一章

1.二叉树的概念,特性,描述,一系列的操作(熟练掌握)
2.四种遍历
3.二叉数的抽象描述(链表和数组)
4.二叉数的应用(熟练掌握(并查集))
5.用树表示并查集(时间复杂性,在线等价类)

第十二章

1.熟练掌握堆和左高树的概念
2.堆和左高树的操作(初始化成堆和左高树,插入和删除),并掌握时间复杂性
3.应用(堆排序,霍夫曼编码(给你一篇文章,用这个方法进行压缩))熟练掌握

第十三章

第十四章

1.二叉搜索树(搜索、插入和删除)
2.搜索树和跳表、散列都适合描述字典(性能)
3.给你一串序列,形成AVL树(插入和删除)
4.AVL树不平衡后的调整

第十五章

1.B-树(概念、性质、搜索、插入和删除,以及应用场景如:磁盘的读写应用)

第十六章

1.图的概念(无向图,加权图……)
2.三种实现方式(类的定义)
3.图的性质(入度、出度)
4.遍历方式(BFS、DFS熟练掌握),两种遍历方法的应用(给你一个无向图得到他们的广度优先和深度优先生成树)

第十七章

1.三种方法PPT(贪心算法的思想(解决最优化问题)(给一个问题,用贪心算法解决))
2.拓扑排序(给一个序列,搞出它的拓扑排序结果)
3.最短路径(给一个有向图,会用Dijkstra算法给出最短路径和最短路径长度)
4.Kruscal算法,Prim算法,S……算法(给一个图,它的结果),这三种算法都要会

第十八章

1.分而治之的算法PPT(给一个序列,用这些算法排序,选择第K大的元素)
2.这些算法的时间复杂性

第十九章

1.动态规划和贪心算法的比较
2.动态规划可以“优雅而高效”(给一个问题,判断是否适合动态规划方法来解决,找出它的递归方程)
3.两个应用(0-1背包问题(贪心和动态规划的实现和区别),所有点对之间的最短路径(Floyd算法和Dijstera算法的区别和时间复杂性)),Floyd算法(给一个加权有向图,计算各顶点之间最短路径及其长度)

郭老师寄言:

数据结构与算法紧密结合,如今算法层出不穷,数据结构深度也非常大,对于那些有志于读研读博的同学,学这些无论如何是不够的,将来的研究生博士生阶段依然要用到更深更广的数据结构与算法,因此,各位同学不要只满足于课本,在课本熟练掌握的基础上一定要拓展自己的学习广度和深度。

结语:一定要热爱数据结构,认真复习,期末考试并不难,祝愿各位期末取得好成绩

你可能感兴趣的:(数据结构与算法,考试)