Hashing Yöntemi İle Kelime Sözlüğü
Program Özellikleri
-
Hash tablosuna yeni bir sözlük dosyasındaki kelimeleri ekleme.
-
Hash tablosunda belirli bir kelimenin aranıp kelimenin bulunduğu sözlük dosyalarının isimlerinin ekrana yazdırılması.
-
Hash tablosundaki bütün kelimelerin ve kelimelerin bulunduğu dosyaların isimlerinin ekrana yazdırılması.
-
Hash tablosuna her eklenen kelimede güncel load factor değerinin ekrana yazdırılması ve load factor değeri 0.8'in üzerindeyse uyarı verilip 1 değerine geldiğinde ekleme işlemlerinin durdurulması.
-
Program kapatılırken güncel hash tablosunun "hash.txt" isimli dosyaya kaydedilmesi.
Hash Tablosu Özellikleri
-
Hash tablosu open addressing yöntemiyle oluşturulmuştur.
-
Çakışma problemlerini çözmek için double hashing yöntemi kullanılmıştır.
-
Kullanılan hash fonksiyonları:
h(key,i) = [h1(key) + i*h2(key)] mod M
h1(key) = key mod M
h2(key) = 1 + (key mod (M - 1))
M: Sözlük boyutu
-
Hash tablosu case sensitive değildir. Örneğin "ARABA" ve "araba" aynı kelimedir.
-
Kelimeler sayıya çevrilirken Horner metodu kullanılmıştır.
Örnek Girdi ve Çıktılar
- Ekteki txt dosyası girdi olarak alınır.
- Sözlükteki kelimeler ekrana yazdırılır.
- Girilen bir kelimenin sözlükte olup olmadığı sorgulanır ve program sözlük hash.txt dosyasına kaydedilerek kapatılır.
- Program tekrar başlatılıp hash.txt dosyasındaki tabloyu yeni bir hash tablosuna alır sonra yeni bir sözlük dosyası eklenir ve iki sözlük dosyasındada olan bir kelimenin sorgusu gerçekleştirilir.