This algorithm operates on trees. But I've always wondered how one can create efficient algorithms operating on general graphs in a functional language such as Haskell?
For example, how would one write a fast version of Dijkstra's shortest path algorithm in Haskell?
For example, how would one write a fast version of Dijkstra's shortest path algorithm in Haskell?