public void Visit(IEdge <V, E> value) { if (Search.IsVisited(value.Start) && parent.ContainsKey(value.Start) && parent[value.Start].Equals(value.End)) { // Back edge found HasCycle = true; } if (!parent.ContainsKey(value.Start)) { parent.Add(value.Start, value.End); } }