public Node <T> Add(T value) { var childNode = new Node <T>(value); ChildrenLeft.Add(childNode); return(childNode); }
public virtual bool inLeft(Node node) { if (node == null) { return(false); } return(ChildrenLeft.Contains(node)); }
public virtual void ConnectKillLeftChild(Node child) { if (!KillLeftNodes.Contains(child) && !ChildrenLeft.Contains(child)) { KillLeftNodes.Add(child); child.ParentKillNodes.Add(this); } }
public virtual void ConnectLeftChild(Node child) { if (child == null) { return; } if (!ChildrenLeft.Contains(child) && !KillLeftNodes.Contains(child)) { ChildrenLeft.Add(child); child.setParent(this); } }
public virtual void DisconnectLeftChild(Node child) { if (child == null) { return; } if (ChildrenLeft.Contains(child)) { ChildrenLeft.Remove(child); child.Unparent(this); } }
public IEnumerator <Node <T> > GetEnumerator() { return(ChildrenLeft.GetEnumerator()); }