まず、BFSアルゴリズムの基本的な考え方を理解しましょう。BFSでは、始点となるノードから始めて、隣接するノードを順番に訪れます。次に、訪れたノードの隣接ノードをキューに追加します。このプロセスを繰り返し、キューが空になるまで続けます。
以下は、JavaScriptでBFSを実装するシンプルな例です。
function bfs(graph, startNode) {
const queue = [startNode]; // キューを作成し、始点ノードを追加する
const visited = new Set(); // 訪れたノードを格納するためのセットを作成する
visited.add(startNode); // 始点ノードを訪れたとしてマークする
while (queue.length > 0) {
const currentNode = queue.shift(); // キューからノードを取り出す
console.log(currentNode); // ノードを表示する(または他の処理を行う)
const neighbors = graph[currentNode]; // 隣接ノードを取得する
for (const neighbor of neighbors) {
if (!visited.has(neighbor)) {
queue.push(neighbor); // 訪れていない隣接ノードをキューに追加する
visited.add(neighbor); // 訪れた隣接ノードをマークする
}
}
}
}
// グラフの例
const graph = {
A: ['B', 'C'],
B: ['D'],
C: ['E'],
D: ['F'],
E: [],
F: []
};
// BFSの実行例
bfs(graph, 'A');
この例では、グラフをオブジェクトとして表現しています。各ノードはキーとして表現され、値として隣接するノードの配列が与えられています。bfs
関数は、グラフと始点ノードを受け取り、BFSアルゴリズムを実行します。ノードを訪れるたびに、コンソールに表示することもできます。
このコード例を参考にしながら、自身のプロジェクトや問題にBFSアルゴリズムを適用してみてください。