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; } } } }
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); } } }