public Array <T> AddBack(T data) { if (_close) { return(this); } ArrayNode <T> newNode = new ArrayNode <T>(); newNode.data = data; newNode.previous = this._items.previous; this._items.previous.next = newNode; this._items.previous = newNode; newNode.next = this._items; _length++; return(this); }
public Array <T> InsertBetween(ArrayNode <T> previous, ArrayNode <T> next, ArrayNode <T> newNode) { if (_close) { return(this); } if (previous == this._items && next != this._items) { this.AddFront(newNode.data); } else if (previous != this._items && next == this._items) { this.AddBack(newNode.data); } else { newNode.next = next; newNode.previous = previous; previous.next = newNode; next.previous = newNode; } return(this); }
public Array <T> Add(T data) { ArrayNode <T> newNode = new ArrayNode <T>(); ArrayNode <T> o = this._items.next; newNode.data = data; if (o == this._items) { this.AddFront(data); } else { for (; o != this._items;) { o = o.next; } if (o == this._items) { this.AddBack(newNode.data); } } return(this); }
public ArrayNode() { this.next = null; this.previous = null; this.data = default; }