[TOC]
-
递归DFS 非递归BFS @import "DSA_7_6.c" {code_block=true class="line-numbers"}
-
非递归DFS 非递归BFS
- 因为使用了非递归的算法,栈中或许会多次压入某个节点,判断是否访问,确保栈的大小,防爆栈
- 题目要求从小向大访问节点,非递归算法需自大向小压栈 //@import "DSA_7_6_2.c" {code_block=true class="line-numbers"}
-
floyd
- 计算任意两点间的距离,计算小于等于6的节点占比
- 通过对称优化运算 //@import "DSA_7_7.c" {code_block=true class="line-numbers"}
-
BFS(待尝试)
- floyd
- 节点:动物,路径权重:魔咒长度
- 出现INF则有不可到达节点
- 筛选部分可同时计算最
复杂动物
与携带动物
,减少循环 //@import "DSA_7_8.c" {code_block=true class="line-numbers"}
- Dijkstr
- 计算某点到其他点距离
- 注意路径相同时价格的更新 @import "DSA_7_9.cpp" {code_block=true class="line-numbers"}
- Prim
- 使用Prim算法更容易判断树的存在,既非联通图
- 注意边界,节点1-N,但是边集从头遍历 @import "DSA_7_10.cpp" {code_block=true class="line-numbers"}
- AOE图关键路径算法(点集+边集)
临接矩阵, 十字链表也行
- 输出顺序
- 多起点,多终点情况下,终点最晚需要为全局最晚 //@import "DSA_7_11.cpp" {code_block=true class="line-numbers"}
- 链表
- 平衡树
- 散列表