Example #1
0
 public bool HasEdge(UndirectedEdge <T> edge)
 {
     if (AdjacencyList.ContainsKey(edge.FirstNode) && AdjacencyList.ContainsKey(edge.SecondNode))
     {
         return(AdjacencyList[edge.FirstNode].Contains(edge.SecondNode) && AdjacencyList[edge.SecondNode].Contains(edge.FirstNode));
     }
     return(false);
 }
Example #2
0
 public void AddEdge(UndirectedEdge <T> edge)
 {
     AdjacencyList[edge.FirstNode].AddLast(edge.SecondNode);
     edge.FirstNode.Degree += 1;
     if (edge.FirstNode == edge.SecondNode)
     {
         return;
     }
     edge.SecondNode.Degree += 1;
     AdjacencyList[edge.SecondNode].AddLast(edge.FirstNode);
 }
Example #3
0
        public bool RemoveEdge(UndirectedEdge <T> edge)
        {
            var removed = AdjacencyList[edge.FirstNode].Remove(edge.SecondNode);

            if (removed)
            {
                edge.FirstNode.Degree -= 1;
            }
            if (edge.FirstNode == edge.SecondNode)
            {
                return(removed);
            }
            removed = removed && AdjacencyList[edge.SecondNode].Remove(edge.FirstNode);
            if (removed)
            {
                edge.SecondNode.Degree -= 1;
            }
            return(removed);
        }