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; }
private bool CheckIfElementExists(int pageNumber, out DoubleLinkedListNode node) { return(this.lruCacheHashSet.TryGetValue(pageNumber, out node)); }
private DoubleLinkedListNode CreateCacheElement(int pageNumber) { var newElement = new DoubleLinkedListNode(pageNumber); return(newElement); }