コード例 #1
0
        public void IlanSil(int anahtar)
        {
            int indis = (anahtar % tabloBoyutu);//IlanId ve tablo boyutu kullanılarak silinecek indis bulundu

            if (hashTablosu[indis] != null)
            {
                HashDugumu oncekiHashDugumu = null;
                HashDugumu hashDugumu       = hashTablosu[indis];
                while (hashDugumu.Next != null && hashDugumu.Anahtar != anahtar)
                {
                    oncekiHashDugumu = hashDugumu;
                    hashDugumu       = hashDugumu.Next;
                }
                if (hashDugumu.Anahtar == anahtar) //Silinecek düğüm bulunup silme işlemi gerçekleştirildi
                {
                    if (oncekiHashDugumu == null)
                    {
                        hashTablosu[indis] = hashDugumu.Next;
                    }
                    else
                    {
                        oncekiHashDugumu.Next = hashDugumu.Next;
                    }
                }
            }
        }
コード例 #2
0
        public void IlanEkle(int anahtar, object deger)
        {
            int indis = (anahtar % tabloBoyutu); //IlanId'nin tablo boyutuna göre modu alındı ve eklenecek indis bulundu.

            if (hashTablosu[indis] == null)      //indis null ise direk ekleme işlemi gerçekleşti
            {
                hashTablosu[indis] = new HashDugumu(anahtar, deger);
            }
            else
            {
                HashDugumu hashDugumu = hashTablosu[indis];
                while (hashDugumu.Next != null && hashDugumu.Anahtar != anahtar)//indis null değil ise null olan indise kadar ilerlendi ve eklendi
                {
                    hashDugumu = hashDugumu.Next;
                }
                if (hashDugumu.Anahtar == anahtar)
                {
                    hashDugumu.Deger = deger;
                }
                else
                {
                    hashDugumu.Next = new HashDugumu(anahtar, deger);
                }
            }
        }