public IEnumerable <int> PathTo(int v) { if (HasPathTo(v)) { var path = new NodeStack <int>(); for (int i = v; i != _s; i = _pathTo[i]) { path.Push(i); } path.Push(_s); while (!path.IsEmpty()) { yield return(path.Pop()); } } ; }