Ричард, QuickGraph не делает ничего для вас, он только делает доступными события, на которые вы можете подписаться. Подписавшись на эти события, вы можете ответить соответствующим образом. Из общепризнанного отсутствия документации QuickGraph по поиску в глубину (да, я понимаю, что вы делаете BFS, а не DFS, но концепция подписки на события одинакова):
- InitializeVertex, вызываемый в каждой вершине перед началом вычисления,
- DiscoverVertex, вызывается при первом обнаружении вершины,
- ExamineEdge, вызывается на каждом выходе каждой вершины после ее обнаружения,
- TreeEdge, вызывается для каждого ребра, когда он становится членом ребер, образующих дерево поиска.
- FinishVertex, вызываемый в вершине после того, как все ее внешние ребра были добавлены в дерево поиска и были обнаружены все смежные вершины (но до того, как были проверены их внешние ребра).
Кстати, откройте Reflector и взгляните на QuickGraph.Algorithms.Observers. И ваше требование кратчайшего пути будет проще с другим методом, чем BFS.