public void Remove(T element) { if (first == null) { return; } NodeDoble <T> elementToRemove = null; var current = first; if (first.GetValue().Equals(element)) { first.RemoveNode(); first = first.children; return; } while (current.children != null) { if (current.children.GetValue().Equals(element)) { elementToRemove = current.children; break; } current = current.children; } if (elementToRemove != null) { elementToRemove.RemoveNode(); } }
void Initialization(T element) { first = new NodeDoble <T>(); last = new NodeDoble <T>(); first.SetValue(element); last = first; first.children = last; }
public void SetChildren(T newChildren) { var newNode = new NodeDoble <T>(); newNode.SetValue(newChildren); children = newNode; children.father = this; }
public void Add(T element) { if (first == null) { Initialization(element); } else { last.SetChildren(element); last = last.children; } }