图算法中的最短路径与旅行商问题
1. 最短路径接口
1.1 函数原型
int shortest(Graph *graph, const PathVertex *start, List *paths, int (*match) (const void *key1, const void *key2));
1.2 返回值
- 若成功计算最短路径,返回 0。
- 否则,返回 -1。
1.3 描述
该函数用于计算有向加权图中从起始顶点到所有其他顶点的最短路径。此操作会修改图,如有需要,可在调用前复制图。图中的每个顶点必须包含 PathVertex
类型的数据。可以通过设置传递给 graph_ins_edge
的 PathVertex
结构的 weight
成员为每条边分配权重。使用 PathVertex
结构的 data
成员存储与顶点相关的数据,如标识符。图的 match
函数(在使用 graph_init
初始化图时由调用者设置)应仅比较 PathVertex
结构的 data
成员,该函数也应作为 match
参数传递给 shortest
。计算