Implementation (Part 2)
Coddyの「ベルマン–フォード法 - グラフアルゴリズム」コースのレッスン 6/9。
距離が確定するまで、パスを繰り返します。
チャレンジ
中級それでは、完全なアルゴリズムです。距離が確定するまでリラクゼーション(緩和)パスを繰り返します。
n、フラットな edges 配列(3つの値の組、有向、負の重みの可能性あり)、および source を受け取り、source からすべての頂点への最短距離を返す bellmanFord という名前の関数を記述してください。到達不可能な頂点には -1 を使用してください。負の閉路は存在しないものと仮定します。
すべてのエッジを n - 1 回リラックス(緩和)させてください。
自分で試してみよう
#include <stdlib.h>
int* bellmanFord(int n, int* edges, int edges_size, int source, int* returnSize) {
// ここにコードを記述してください
*returnSize = 0;
return edges;
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ベルマン–フォード法 - グラフアルゴリズムのすべてのレッスン
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)