public void AddIlan(int key, object value)
        {
            int hash = (key % TABLE_SIZE);

            if (table[hash] == null)
            {
                table[hash] = new LinkedHashEntry(key, value);
            }
            else
            {
                LinkedHashEntry entry = table[hash];
                while (entry.Next != null && entry.Anahtar != key)
                {
                    entry = entry.Next;
                }
                if (entry.Anahtar == key)
                {
                    entry.Deger = value;
                }
                else
                {
                    entry.Next = new LinkedHashEntry(key, value);
                }
            }
        }
        public void RemoveIlan(int key)
        {
            int hash = (key % TABLE_SIZE);

            if (table[hash] != null)
            {
                LinkedHashEntry prevEntry = null;
                LinkedHashEntry entry     = table[hash];
                while (entry.Next != null && entry.Anahtar != key)
                {
                    prevEntry = entry;
                    entry     = entry.Next;
                }
                if (entry.Anahtar == key)
                {
                    if (prevEntry == null)
                    {
                        table[hash] = entry.Next;
                    }
                    else
                    {
                        prevEntry.Next = entry.Next;
                    }
                }
            }
        }
Пример #3
0
    public void Put(int key, int value)
    {
        int hash = (key % TABLE_SIZE);

        if (table[hash] == null)
        {
            table[hash] = new LinkedHashEntry(key, value);
        }
        else
        {
            LinkedHashEntry entry = table[hash];
            while (entry.GetNext() != null && entry.GetKey() != key)
            {
                entry = entry.GetNext();
            }
            if (entry.GetKey() == key)
            {
                entry.SetValue(value);
            }
            else
            {
                entry.SetNext(new LinkedHashEntry(key, value));
            }
        }
    }
        public IsIlani GetIlan(int key)
        {
            int hash = (key % TABLE_SIZE);

            if (table[hash] == null)
            {
                return(null);
            }
            else
            {
                LinkedHashEntry entry = table[hash];
                while (entry != null && entry.Anahtar != key)
                {
                    entry = entry.Next;
                }
                if (entry == null)
                {
                    return(null);
                }
                else
                {
                    return((IsIlani)entry.Deger);
                }
            }
        }
Пример #5
0
    public void Remove(int key)
    {
        int hash = (key % TABLE_SIZE);

        if (table[hash] != null)
        {
            LinkedHashEntry prevEntry = null;
            LinkedHashEntry entry     = table[hash];

            while (entry.GetNext() != null && entry.GetKey() != key)
            {
                prevEntry = entry;
                entry     = entry.GetNext();
            }

            if (entry.GetKey() == key)
            {
                if (prevEntry == null)
                {
                    table[hash] = entry.GetNext();
                }
                else
                {
                    prevEntry.SetNext(entry.GetNext());
                }
            }
        }
    }
Пример #6
0
    public int Get(int key)
    {
        int hash = (key % TABLE_SIZE);

        if (table[hash] == null)
        {
            return(-1);
        }
        else
        {
            LinkedHashEntry entry = table[hash];
            while (entry != null && entry.GetKey() != key)
            {
                entry = entry.GetNext();
            }
            if (entry == null)
            {
                return(-1);
            }
            else
            {
                return(entry.GetValue());
            }
        }
    }
Пример #7
0
 private void MoveToFirst(LinkedHashEntry entry)
 {
     if (!ReferenceEquals(entry, Header))
     {
         entry.Before.After  = entry.After;
         entry.After.Before  = entry.Before;
         entry.After         = Header;
         entry.Before        = Header.Before;
         Header.Before.After = entry;
         Header.Before       = entry;
         Header = entry;
     }
 }
Пример #8
0
        protected override HashEntry CreateEntry(K key, V value)
        {
            var linkedEntry = new LinkedHashEntry(key, value);

            if (Header == null)
            {
                Header        = linkedEntry;
                Header.Before = Header.After = Header;
            }
            else
            {
                linkedEntry.After   = Header;
                linkedEntry.Before  = Header.Before;
                Header.Before.After = linkedEntry;
                Header.Before       = linkedEntry;
            }

            return(linkedEntry);
        }
Пример #9
0
        public override bool Remove(K key)
        {
            Guarder.CheckNull(key);
            var removed = false;
            var entry   = GetEntry(key) as LinkedHashEntry;

            if (entry != null)
            {
                if (base.Remove(key))
                {
                    if (ReferenceEquals(entry, Header))
                    {
                        Header = entry.After;
                    }
                    entry.Before.After = entry.After;
                    entry.After.Before = entry.Before;
                    removed            = true;
                }
            }
            return(removed);
        }
Пример #10
0
 public void SetNext(LinkedHashEntry next)
 {
     this.next = next;
 }
Пример #11
0
 internal LinkedHashEntry(int key, int value)
 {
     this.key   = key;
     this.value = value;
     this.next  = null;
 }
 public LinkedHashEntry(int anahtar, object deger)
 {
     this.anahtar = anahtar;
     this.deger   = deger;
     this.next    = null;
 }