public T Dequeue() { if (this.Count <= 0) { throw new InvalidOperationException("Queue is empty."); } var elementToReturn = this.start; this.start = this.start.Next; this.Count--; return(elementToReturn.Value); }
public void Enqueue(T element) { var newElement = new LinkedQueueNode <T>(element); if (this.Count == 0) { this.start = this.end = newElement; } else { this.end.Next = newElement; this.end = newElement; } this.Count++; }
public T Dequeue() { if (this.firstNode == null) { throw new InvalidOperationException("Queue empty."); } T result = this.firstNode.Value; this.firstNode = this.firstNode.NextNode; if (this.firstNode != null) { this.firstNode.PreviousNode = null; } return(result); }
public void Enqueue(T value) { if (this.firstNode == null) { this.firstNode = new LinkedQueueNode <T>(value); } else if (this.lastNode == null) { this.lastNode = new LinkedQueueNode <T>(value); this.firstNode.NextNode = this.lastNode; this.lastNode.PreviousNode = this.firstNode; } else { var newLastNode = new LinkedQueueNode <T>(value); this.lastNode.NextNode = newLastNode; newLastNode.PreviousNode = this.lastNode; this.lastNode = newLastNode; } }
public LinkedQueueNode(T value, LinkedQueueNode <T> previousValue, LinkedQueueNode <T> nextValue) : this(value, previousValue) { this.NextNode = nextValue; }
public LinkedQueueNode(T value, LinkedQueueNode <T> previousValue) : this(value) { this.PreviousNode = previousValue; }