ここでは、探索における代表的な2つの方法、Depth first search (DFS) とBreadth first search (BFS) とは何か、どのような利害得失があるのか、について述べます。 Depth first search (深さ優先探索) まず子を一つ調べ、次にその子のさらに子を調べ、次にその子の子の子の……というように出来る限り進んで行って、行き止まったら戻って他の子を探索する、というのが DFS です。子に対して DFS を子に再帰的に適用していく、と捉えることも出来ます。 Breadth first search (幅優先探索) 自分の子を全て探索してから、子の子を全て探索し、子の子の子の……というように、同じ深さのものを全て探索してから次の階層へ進むのが BFS です。 記憶領域の効率 DFS の場合 これ以降、木の高さを n で、ノードからどのくらいの子が