Bölüm 10: Arama Ağaçları

Bölüm 10: Arama Ağaçları · Çalışma Soruları
BST ekleme ve silmeArama yoluAVL döndürmeleriDengesiz ağaç
Klasik · çoktan seçmeli · adım adım çalıştırmalı · ucu açık sorular. Önce kendiniz çözün, sonra cevabı açın. · Sercan KÜLCÜ

Klasik Soru · Arama Ağaçları

Soru 1: BST Ekleme ve Silme

Verilen ikili arama ağacına sırasıyla ekle 42, ekle 67, sil 30, sil 70, sil 20 uygulanıyor. İki çocuklu düğüm silinirken ardıl (sağ alt ağacın en küçüğü) kullanılıyor. Son hâli çiziniz.

20354540306560807050
Cevabı göster
  • 42 → 45'in solu; 67 → 65'in sağı.
  • sil 30 (iki çocuk): ardıl 35 (yaprak) 30'un yerine yazılır, eski 35 silinir.
  • sil 70 (iki çocuk): ardıl 80 70'in yerine yazılır.
  • sil 20: yaprak, doğrudan silinir.
424540356765608050

Kontrol (inorder): 35 40 42 45 50 60 65 67 80

Klasik Soru · Arama Ağaçları

Soru 2: Arama Yolu, Min/Max, Ardıl

Önceki sorudaki başlangıç ağacı için:
(a) 65 ve 38 aranırken hangi düğümlerle karşılaştırma yapılır?
(b) En küçük ve en büyük değer nasıl bulunur?
(c) 45'in ve 50'nin ardılı (successor) nedir?
(d) Bu işlemlerin karmaşıklığı nedir?
(e) BST'de aynı değerli düğüm olabilir mi?

20354540306560807050
Cevabı göster
  • (a) 65: 50 → 70 → 60 → 65 (bulundu, 4 karşılaştırma). 38: 50 → 30 → 40 → 35 → sağ çocuk yok → bulunamadı.
  • (b) Min: sürekli sola git → 20. Max: sürekli sağa git → 80.
  • (c) 45'in sağ alt ağacı yok → atalar arasında, sol çocuğu üzerinden gelinen ilk ata: 50. 50'nin ardılı: sağ alt ağacın en küçüğü → 60.
  • (d) Hepsi O(h): dengeli ağaçta O(log n), dengesizde O(n).
  • (e) Tasarıma bağlıdır: izin verilirse eşitler hep aynı tarafa (ör. sağa) eklenir ya da düğümde sayaç tutulur; izin verilmezse ekleme yok sayılır veya hata verilir.

Klasik Soru · Arama Ağaçları

Soru 3: AVL Ağacına Ekleme

Boş bir AVL ağacına sırasıyla 10, 20, 30, 40, 50, 25 ekleniyor. Her dengesizlikte hangi düğümde, hangi tür döndürme (LL, RR, LR, RL) yapıldığını yazınız ve son ağacı çiziniz. Aynı sırayla normal BST'ye eklenseydi yükseklik ne olurdu?

Cevabı göster
  • 10, 20, 30: 10'da denge −2, sağ-sağ → RR (sola döndürme) 10'da → kök 20.
  • 40 eklenir (30'un sağı). 50: 30'da denge −2, sağ-sağ → RR 30'da → 20(10, 40(30, 50)).
  • 25: 20 → 40 → 30'un soluna. 20'de denge −2, sağ çocuk 40 sola ağır → RL: önce 40'ta sağa, sonra 20'de sola döndürme.
102520504030

Son ağaç (preorder): 30 20 10 25 40 50, yükseklik 2.

Normal BST'de sıralı ekleme zincir oluşturur: yükseklik 4. AVL yüksekliği O(log n)'de tutar.

Klasik Soru · Arama Ağaçları

Soru 4: Dengesiz Ağaç Sorunu

(a) 1, 2, 3, 4, 5, 6, 7 anahtarları bu sırayla boş bir BST'ye eklenirse ağacın biçimi ve yüksekliği ne olur? Arama maliyeti nedir?
(b) Aynı anahtarlar hangi sırayla eklenirse mükemmel dengeli ağaç oluşur?
(c) Dengeyi otomatik koruyan iki yapı adı veriniz ve yükseklik garantilerini yazınız.

Cevabı göster
  • (a) Her anahtar öncekinin sağına eklenir: sağa yatık zincir (bağlı liste gibi). Yükseklik 6 = n − 1; arama O(n).
  • (b) Önce orta, sonra her yarının ortası: 4, 2, 6, 1, 3, 5, 7. Yükseklik 2 = ⌊log₂7⌋.
  • 1325764
  • (c) AVL: her düğümde alt ağaç yükseklik farkı ≤ 1, h ≤ 1,44 log₂n. Kırmızı-siyah: her yolda siyah düğüm sayısı eşit, h ≤ 2 log₂(n+1). İkisinde de işlemler O(log n); Java TreeMap kırmızı-siyah ağaçtır.

Çoktan Seçmeli · Arama Ağaçları

Test 1

Boş BST'ye sırasıyla 40, 20, 60, 10, 30 ekleniyor. 30'un ebeveyni hangisidir?

30 < 40 → sola (20); 30 > 20 → 20'nin sağına.

Hangi ağaç bir ikili arama ağacı değildir?

12, 10'un sol alt ağacındadır ama 10'dan büyüktür. Yalnızca ebeveynle değil, tüm atalarla karşılaştırma tutarlı olmalıdır.

Çoktan Seçmeli · Arama Ağaçları

Test 2

AVL ağacında bir düğümün denge faktörü (sol yükseklik − sağ yükseklik) hangi değerleri alabilir?

|denge| ≥ 2 olunca döndürme ile denge geri kazanılır.

n düğümlü kırmızı-siyah ağaçta aramanın en kötü durumu nedir?

Yükseklik ≤ 2 log₂(n + 1) garanti edilir. Dengesiz bir BST'de en kötü durum O(n) olurdu.

Adım Adım Çalıştırma · Arama Ağaçları

BST'de Arama

Aşağıdaki BST'de önce 65, sonra 38 aranıyor. Ziyaret edilen düğümleri izleyin.

20354540306560807050

Önce tahmin edin: iki arama kaçar karşılaştırma yapar?

20354540306560807050

ara(kok, 65): 50 ≠ 65.

20354540306560807050

65 > 50 → sağa.

20354540306560807050

65 < 70 → sola.

20354540306560807050

65 > 60 → sağa.

20354540306560807050

k.veri == x → bulundu. 4 düğüm ziyaret edildi.

20354540306560807050

ara(kok, 38): 38 < 50 → sola.

20354540306560807050

38 > 30 → sağa.

20354540306560807050

38 < 40 → sola.

20354540306560807050

38 > 35 → sağa, ama 35'in sağ çocuğu yok.

20354540306560807050

k == null → bulunamadı. Maliyet yol uzunluğu kadar: O(h).

Dugum ara(Dugum k, int x) {
    while (k != null && k.veri != x) {
        if (x < k.veri) k = k.sol;
        else k = k.sag;
    }
    return k;
}
System.out.println(ara(kok, 65) != null);
System.out.println(ara(kok, 38) != null);

Ucu Açık Soru · Arama Ağaçları

Sözlük Uygulaması

  1. Bir sözlük uygulamasında kelime ekleme, kelime arama ve "ab" ile başlayan tüm kelimeleri alfabetik listeleme işlemleri var. HashMap mi, TreeMap (dengeli BST) mi? Gerekçelendirin.
  2. Kelimeler sözlüğe alfabetik sırayla toplu olarak yüklenirse dengesiz bir BST'de ne olur? TreeMap bu durumdan nasıl etkilenir?
Örnek cevap ve değerlendirme ölçütleri

1. HashMap arama/eklemede ortalama O(1) verir ama sıra tutmaz; önek sorgusu tüm tabloyu tarayıp sıralamayı gerektirir (O(n log n)). TreeMap anahtarları sıralı tutar: ekleme/arama O(log n), önek aralığı subMap("ab", "ac") ile O(log n + k) (k: sonuç sayısı) zamanda, zaten alfabetik gelir. Önek sorguları ağırlıktaysa TreeMap uygundur. Önek odaklı özel yapı: trie.

2. Dengesiz BST'de sıralı ekleme her düğümü öncekinin sağına koyar: ağaç bir zincire (bağlı listeye) dönüşür, yükseklik n − 1, işlemler O(n), toplam yükleme O(n²). TreeMap kırmızı-siyah ağaçtır; döndürmelerle yüksekliği O(log n)'de tuttuğu için etkilenmez.

Değerlendirme: işlem bazında karmaşıklık · sıralı/aralık sorgusu gereksinimi · sıralı eklemenin dengesiz BST'ye etkisi · dengeli ağacın garantisi.

Son

Bölüm 10: Arama Ağaçları: Çalışma Soruları
Konu anlatımı: Arama Ağaçları sunumu
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.