基本情報技術者 テクノロジ系

木構造の深さ優先探索(DFS)と幅優先探索(BFS)の違いとして適切なものはどれか。

1. DFSはキューを使い、BFSはスタックを使う
2. DFSはスタックを使い深く探索し、BFSはキューを使い幅広く探索する ✓ 正解
3. DFSとBFSは同じアルゴリズムである
4. DFSは常にBFSより高速である

📝 解説

木やグラフの探索アルゴリズムには深さ優先探索(DFS:Depth First Search)と幅優先探索(BFS:Breadth First Search)があり、データ構造と探索の特性が異なります。迷路探索に例えると、DFSは「まず1つの道を行き止まりになるまで進み、行き止まったら直前の分岐まで戻って別の道を試す」スタイルで、BFSは「スタートから1歩先の全分岐、次に2歩先の全分岐と同心円状に広げて探す」スタイルです。DFSはスタック(または再帰呼び出し)を使い、メモリ使用量が少なく深い構造の探索・バックトラッキングが必要な問題(迷路・数独・組み合わせ探索)に向いています。BFSはキューを使い、スタートから最短経路を見つけるのに適しています(各ステップのコストが均一な場合)。例えば「友達の友達の友達」のようなSNSの最短接続数を調べるにはBFSが有効です。誤答の「DFSはキューを使い、BFSはスタックを使う」はデータ構造が逆です。「DFSとBFSは同じアルゴリズム」は誤りで探索順序が全く異なります。「DFS=スタック・深く探索、BFS=キュー・幅広く探索・最短経路」という対比を確実に覚えましょう!

フラッシュカード形式で テクノロジ系 を練習する

🎴 練習する

テクノロジ系 の問題一覧・解説を見る →