public void RemoveLast() { if (Tail != null) { // es gibt element(e) if (Tail.Prev != null) { // es gibt mehr als eins LinkedListElement <PlaceHolderForDataType> toDelete = Tail; Tail = toDelete.Prev; Tail.Next = null; toDelete.Prev = null; Count--; } else { // es gibt nur eins Head = null; Tail = null; Count = 0; } } else { // es gab kein element in der Liste throw new IndexOutOfRangeException("Remove from empty LinkedList is not allowed."); } }
public ref PlaceHolderForDataType At(int Index) { if (Count <= Index) { throw new IndexOutOfRangeException(); } LinkedListElement <PlaceHolderForDataType> buffer = Head; for (int counter = 0; counter < Index; counter++) { buffer = buffer.Next; } return(ref buffer.Data); }
public void AddLast(PlaceHolderForDataType Value) { LinkedListElement <PlaceHolderForDataType> newElement = new(); newElement.Data = Value; if (Head == null) { // element ist das erste was in die liste kommt. Head = newElement; Tail = newElement; newElement.Prev = null; newElement.Next = null; } else { // nicht das erste element in der liste Tail.Next = newElement; newElement.Next = null; newElement.Prev = Head; Tail = newElement; } Count++; }