コード例 #1
0
        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);
        }
コード例 #2
0
        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++;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 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;
     }
 }
コード例 #5
0
 public LinkedQueueNode(T value, LinkedQueueNode <T> previousValue, LinkedQueueNode <T> nextValue)
     : this(value, previousValue)
 {
     this.NextNode = nextValue;
 }
コード例 #6
0
 public LinkedQueueNode(T value, LinkedQueueNode <T> previousValue)
     : this(value)
 {
     this.PreviousNode = previousValue;
 }