/// <summary> /// Creates a node with the user defined value, user defined IColl<T> of neighbors. /// </summary> /// <param name="val"></param> /// <param name="neighbors"></param> public MyNode(T val, ICollection <MyNode <T> > neighbors) { VALUE = val; foreach (MyNode <T> node in neighbors) { NEIGHBORS.Add(node); } VISITED = false; }
/// <summary> /// Takes in avalue and enumerable of neighboring nodes /// </summary> /// <param name="val"></param> /// <param name="neighborNodes"></param> public MyNode(T val, IEnumerable <MyNode <T> > neighborNodes) { VALUE = val; foreach (MyNode <T> node in neighborNodes) { NEIGHBORS.Add(node); } VISITED = false; }
public bool RemoveConnections(IEnumerable <MyNode <T> > nodesToBeDisconnected) { bool allRemovalsSuccesfull = true; foreach (MyNode <T> node in nodesToBeDisconnected) { if (!NEIGHBORS.Remove(node)) { allRemovalsSuccesfull = false; } } return(allRemovalsSuccesfull); }
public bool AddConnections(IEnumerable <MyNode <T> > nodesToBeConnectedWith) { bool allAddsWentThrough = true; foreach (MyNode <T> node in nodesToBeConnectedWith) { if (!NEIGHBORS.Add(node)) { allAddsWentThrough = false; } } return(allAddsWentThrough); }
/// <summary> /// Checks all node values for equality /// </summary> /// <param name="other"></param> /// <returns></returns> public bool Equals(MyNode <T> other) { return(VALUE.Equals(other.VALUE) && VISITED.Equals(other.VISITED) && NEIGHBORS.Equals(other.NEIGHBORS)); }
/// <summary> /// Removes a node from this node's Neighbors /// </summary> /// <param name="nodeToBeDisconnected"></param> /// <returns></returns> public bool RemoveConnection(MyNode <T> nodeToBeDisconnected) { return(NEIGHBORS.Remove(nodeToBeDisconnected)); }
/// <summary> /// Adds a single node to this node's neighbors /// </summary> /// <param name="nodeToBeConnectedWith"></param> /// <returns>True: addition was succesful; False: addition was not successful</returns> public bool AddConnection(MyNode <T> nodeToBeConnectedWith) { return(NEIGHBORS.Add(nodeToBeConnectedWith)); }