public void AddAfter(DoublyNodeLinkedListNode <T> current, DoublyNodeLinkedListNode <T> newNode) { newNode.Next = current.Next; current.Next.Prev = newNode; newNode.Prev = current; current.Next = newNode; }
public DoublyNodeLinkedListNode (T data, DoublyNodeLinkedListNode <T> prev = null, DoublyNodeLinkedListNode <T> next = null) { this.Data = data; this.Prev = prev; this.Next = next; }
//Add //AddAfter //GetIndex public void Add(DoublyNodeLinkedListNode <T> newNode) { if (_head is null) { _head = newNode; _head.Prev = _head; _head.Next = _head; } else { var current = _head; var tail = current.Prev; current.Prev = newNode; tail.Next = newNode; newNode.Prev = tail; newNode.Next = current; } }