线性表
栈、队列、数组
树、二叉树




图
因为王道的算法太麻烦了,不利于人脑模拟算法执行,所以针对 AOE,我给出一个基于 DAG 上动态规划的算法。
定义 $S_i$ 为顶点 i 到终点的最长路径长度,则:
$$
S_i= \begin{cases}
\underset{(i,j)\in E}{\overset{}{\mathrm{MAX}}}(S_j+\mathrm{len}(i,j)) & i \ne \mathrm{end} \\
0 &i=\mathrm{end}
\end{cases}
$$
显然这个算法的时间复杂度是 $O(|E|)$ 的,代码递归地写就可以。
那么找出关键路径就很方便了:
查找
排序
运用快排的划分思想: