Example #1
0
        private void Dequeue()
        {
            if (this.IsEmpty())
            {
                return;
            }

            // Remove the element from the queue.
            DoubleLinkedListNode elementToRemove = this.rear;

            this.rear      = elementToRemove.Previous;
            this.rear.Next = null;

            // Reove the element from dictionary.
            this.lruCacheHashSet.Remove(elementToRemove.PageNumber);
        }
 public DoubleLinkedListNode(int pageNumber)
 {
     this.PageNumber = pageNumber;
     this.Previous   = null;
     this.Next       = null;
 }
Example #3
0
 private bool CheckIfElementExists(int pageNumber, out DoubleLinkedListNode node)
 {
     return(this.lruCacheHashSet.TryGetValue(pageNumber, out node));
 }
Example #4
0
        private DoubleLinkedListNode CreateCacheElement(int pageNumber)
        {
            var newElement = new DoubleLinkedListNode(pageNumber);

            return(newElement);
        }