コード例 #1
0
        public static void Dfs <T>(this BidirectionalGraph <T, Edge <T> > graph, T start, Action <Edge <T> > foundEdge)
        {
            var dfs = new DepthFirstSearchAlgorithm <T, Edge <T> >(graph);

            dfs.StartVertex += v => { if (!v.Equals(start))
                                      {
                                          dfs.Abort();
                                      }
            };
            dfs.ExamineEdge += e => foundEdge(e);
            dfs.Compute(start);
        }