2019-11-23 - 2020-1-1
PAT甲/乙级一刷
- 
基本的数学运算 这部分问题需要注意常见的一些边界条件,二刷时需要放轻权重 
- 
线性数据结构 主要这里指的是链表,涉及到链表中数据关系的转换,通常有反转。常见的边界条件有某个节点不在链表中。 
- 
栈和队列 
- 
贪心 涉及到贪心问题难度不一,首先需要明确问题使用贪心可解(归纳法证明)。才可以使用贪心策略解决问题。 
- 
搜索 
- 
树 涉及到树的遍历,通常情况下比较简单。 另一类问题主要涉及到并查集的问题,需要结合题目数数据规模,考虑并查集是否需要路径压缩. 
- 
二叉树 涉及到二叉树的遍历,通过任意两个遍历方式去还原二叉树原本的结构是常用题型。 注意到,给出序列不包含中序遍历序列时,遍历的结果可能不止有一个。 
- 
图的遍历 图的问题需要注意使用深度优先搜索遍历时,对访问过的元素需要作出标记。否则不会到达递归边界。 
- 
图最短路径问题 涉及到Dijkstra算法的使用,主要是由路径长度外第二个参数作为指标,需要记录已经计算出来的最短路径。并通过计算这些路径的第二参数指标,完成最后所求解。 
- 
图连通性的问题 图的连通性问题主要通过三种方式解决 1. 基本的图遍历,通过遍历给定序列的所有节点,计算连通图的数量 2. prim法则: 以顶点为扩充条件的连通图计算方法 3. kruskal法: 以边为扩充条件的连通图计算方法 
- 
简单的动态规划问题 1. 最大连续不下降子列问题 
- 
排序问题 这里的排序通常是指的是多关键字排序,注意参加排序的数据范围,以及排序方式 
- 
分块查找 
- 
树状数组 某些题目,如果不使用树状数组,无论如何去优化时间复杂度都会导致TLE。 
下一阶段需要注意的问题 (1-8 - 1-25)
1. 图问题的处理
2. 动态规划的处理
3. 深入学习树相关的高级数据结构
	AVL,红黑树,Trie树,B+/-树
4. 深入学习图的DAG的处理方案
5. 完成数据结构原理部分的补全工作