Example #1
0
            public int CompareTo(HashSetPair <k, v> other, k key) //Referans karsilastirmasi yapmamak adina ozel bir karsilastirma fonksiyonu olusturulur.
            {                                                     //Comparer.Default.Compare kullanilarak degerler karsilastirilir.
                if (other == null)
                {
                    return(1);
                }

                return(Comparer.Default.Compare((k)key, (k)other.key)); // Karsilastirilmak istenen veri turu 'k' oldugu icin cast yapilir.
            }
Example #2
0
        public bool Add(k key, v value)  //Listeye HasSetPair nesnelerini ekler.
        {
            if (LoadFactor() > maxLoadFactor)
            {
                Resize(tableSize * 2);
            }

            HashSetPair <k, v> hashSetPair = new HashSetPair <k, v>(key, value);
            int hashValue = key.GetHashCode();

            hashValue = hashValue & 0x7fffffff;
            hashValue = hashValue % tableSize;

            harray[hashValue].AddFirst(hashSetPair);
            numElements++;
            return(true);
        }
Example #3
0
        public void Resize(int newSize)  //Buyuyen dizinin yeniden boyutlanmasini saglar.
        {
            LinkedList <HashSetPair <k, v> >[] newSetPair = new LinkedList <HashSetPair <k, v> > [newSize];
            for (int i = 0; i < newSize; i++)    //Yeni bir dizi olusturulur, ici bos LinkedList nesneleri olusturulur.
            {
                newSetPair[i] = new LinkedList <HashSetPair <k, v> >();
            }

            foreach (var iterator in this.harray) //Eski listedeki degerler yeni listeye aktarilir.
            {
                foreach (var setPair in iterator)
                {
                    HashSetPair <k, v> newHashList = new HashSetPair <k, v>(setPair.key, setPair.value);
                    int hashValue = setPair.key.GetHashCode();
                    hashValue = hashValue & 0x7fffffff;
                    hashValue = hashValue % newSize;

                    newSetPair[hashValue].AddFirst(newHashList);
                }
            }

            harray    = newSetPair; //Yeni dizinin referansi eskisine aktarilir.
            tableSize = newSize;
        }