public void Add(T value) { var newNode = new Node <T>(value, null); tail.ChangePointer(newNode); tail = newNode; }
public void Delete(int index) { if (index >= Count || index < 0) { throw new IndexOutOfRangeException("Index was out of bounds"); } var pointer = GetElementByIndex(index - 1); Node <T> prevPointer = pointer; pointer = pointer.next; var newPointer = pointer.next == default(Node <T>) ? null : pointer.next; prevPointer.ChangePointer(newPointer); }
public void Insert(T value, int index) { if (index >= Count || index < 0) { throw new IndexOutOfRangeException("Index was out of bounds"); } if (index == 0) { head.ChangePointer(new Node <T>(value, head.next)); return; } var pointer = GetElementByIndex(index - 1); var newPointer = new Node <T>(value, pointer.next == default(Node <T>)? null : pointer.next); pointer.ChangePointer(newPointer); }