internal override void UpdateEdgeData(DirectedAdjListGraphVertex <T> vertex1, DirectedAdjListGraphVertex <T> vertex2, Func <EdgeData, EdgeData> updateFunc)
        {
            ListNode node = FindEdgeNode(vertex1, vertex2);

            node.EdgeData = updateFunc(node.EdgeData);
        }
 internal override void CreateEdge(DirectedAdjListGraphVertex <T> vertex1, DirectedAdjListGraphVertex <T> vertex2, double weight)
 {
     InsertListNode(List[vertex1.Handle], new ListNode(vertex2), weight);
 }