public void AddFirst(T element) { Node <T> cursor = head; Node <T> newNode = new Node <T>(element); newNode.setprev(cursor); newNode.setnext(cursor.getnext()); cursor.setnext(newNode); cursor.getnext().setprev(newNode); length++; }
public void Clear() { Node <T> cursor = tail; int index = length; for (int i = 0; i < index; i++) { cursor = cursor.getnext(); cursor.getnext().setprev(cursor.getprev()); cursor.getprev().setnext(cursor.getnext()); length--; } }
public T RemoveLast() { if (length == 0) { throw new NotImplementedException(); } else { Node <T> cursor = tail; Node <T> result = cursor.getprev(); result.getnext().setprev(result.getprev()); result.getprev().setnext(result.getnext()); length--; return(result.getelement()); } }
public T RemoveFirst() { if (length == 0) { throw new InvalidOperationException(); } else { Node <T> cursor = head; Node <T> result = cursor.getnext(); result.getnext().setprev(result.getprev()); result.getprev().setnext(result.getnext()); length--; return(result.getelement()); } }
public int RemoveAll(T element) { Node <T> cursor = tail; int index = length; int number = 0; for (int i = 0; i < index; i++) { cursor = cursor.getnext(); if (EqualityComparer <T> .Default.Equals(cursor.getelement(), (element))) { cursor.getnext().setprev(cursor.getprev()); cursor.getprev().setnext(cursor.getnext()); length--; number++; } } return(number); }
public bool Remove(T element) { Node <T> cursor = tail; int index = length; bool retValue = false; for (int i = 0; i < index; i++) { cursor = cursor.getnext(); if (EqualityComparer <T> .Default.Equals(cursor.getelement(), (element))) { cursor.getnext().setprev(cursor.getprev()); cursor.getprev().setnext(cursor.getnext()); length--; retValue = true; break; } } return(retValue); }