public void Push(T item) { var newItem = new LinkedStackItem <T>(item); if (Count == 0) { LastItem = newItem; } newItem.PreviosItem = LastItem; LastItem.NextItem = newItem; LastItem = newItem; Count++; }
public void Push(T item) { if (head == null) { head = tail = new LinkedStackItem <T> { Item = item, Prev = null }; } else { var prevHead = head; head = new LinkedStackItem <T> { Item = item, Prev = prevHead }; } }
public T Pop() { if (head == null) { throw new InvalidOperationException(); } if (head == tail) { var value = head.Item; head = null; tail = null; return(value); } var prevHead = head; head = head.Prev; return(prevHead.Item); }
public void CopyLinkedStack(LinkedStackItem <T> item, int count) { LastItem = item; Count = count; }