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);
            }
        }