Exemple #1
0
        public int Get(int key)
        {
            if (!map.ContainsKey(key))
            {
                return(-1);
            }
            LinkedNode node = map[key];

            MoveToFirst(node);
            return(node.Value);
        }
Exemple #2
0
        private void MoveToFirst(LinkedNode node)
        {
            if (node == first)
            {
                return;
            }

            node.Pre.Next = node.Next;
            if (node != last)
            {
                node.Next.Pre = node.Pre;
            }
            else
            {
                last      = node.Pre;
                last.Next = null;
            }

            node.Next = first;
            first.Pre = node;
            first     = node;
        }