public new WeightedGraphNode <T> Clone()
        {
            var cln = new WeightedGraphNode <T>(value);

            //foreach (var kvp in EdgeWeights)
            //    cln.EdgeWeights.Add(kvp.Key, kvp.Value);

            return(cln);
        }
 public static void RemoveMutualNeighbor(WeightedGraphNode <T> n1, WeightedGraphNode <T> n2)
 {
     n1.RemoveNeighbor(n2);
     n2.RemoveNeighbor(n1);
 }
 public static void AddMutualNeighbor(WeightedGraphNode <T> n1, WeightedGraphNode <T> n2, double weight = 1)
 {
     n1.AddNeighbor(n2, weight);
     n2.AddNeighbor(n1, weight);
 }
 public void RemoveMutualNeighbor(WeightedGraphNode <T> neighbor) => RemoveMutualNeighbor(this, neighbor);
 public void AddMutualNeighbor(WeightedGraphNode <T> neighbor, double weight = 1) => AddMutualNeighbor(this, neighbor, weight);