instagram twitter linkedin github youtube

14.7.15

2-3 Ağacı (2-3 Tree)

Bilgisayar bilimlerinde kullanılan bir veri yapısıdır (data structures). Özel bir ağaç yapısıdır ve amaç ağacı sürekli olarak dengeli (balanced) tutmaktır.
Ağaçtaki düğümlere (nodes) isim olarak 2 veya 3 ismi verilebilir. Her düğüm aldığı isme göre farklı işleme tabi tutulur. Düğümlerin isimlendirilmesi aşağıdaki şekilde yapılır:
2 düğümleri (2 nodes) : 2 adet çocuğu ve bir veri elemanı bulunan düğüm yapısıdır
3 düğümleri (3 nodes) : 3 adet çocuğu ve iki veri elemanı bulunan düğüm yapısıdır.
2-3 Ağacına Ekleme işlemli
Ağaca eklemeyi bir örnek üzerinden adım adım görelim. Ağacımıza ekleyeceğimiz sayılar aşağıdaki şekilde veriliyor olsun:
50, 27, 97, 52, 19, 11, 111
Bu sırayla verilen değerleri sırasıyla ağaca ekleyelim:
İlk sayı olan 50’nin eklenmesi sonucunda ağaçta tek bir düğüm ve bu düğümde tek bir veri bulunuyor. Bu tip düğüme 2 düğümü ismi verilmektedir ve iki çocuğu da boştur (null).
İkinci eklenen değer 27’dir. Ağacımızda tek düğüm bulunduğundan ve bu düğüm 2 tipinde olduğundan, düğümde yeni değeri alacak yer bulunmaktadır. Bu yere yeni gelen değer yerleştirilir. Elbette düğümlerin içerisinde sıra bulunması gerektiği için, 27 değeri, 50 değerinin soluna yerleştirilmiştir. Bu kural bundan sonraki ekleme işlemlerinde de geçerli olacaktır. Yani düğüm içerisindeki değerler kendi aralarında sıralı olacak ve herhangi bir değerin solundaki çocuklarının değeri, kendi değerinden küçük ve sağındaki değeri kendi değerinden büyük olacaktır.
Ardından gelen ekleme değeri, 97’dir. Bu değer düğüme eklenince, aslında aşağıdaki gibi bir yapı elde edilir:
Ancak ne yazık ki 2-3 ağaçlarında, 3 adet değeri tek bir düğümde bulundurma şansımız yoktur. Bu yüzden yukarıdaki bu hayali yapı bölünerek aşağıdaki şekle geçilir ve 3 adet 2 tipinde düğümümüz olur:
Yeni gelen değerimiz 52’dir:
Yukarıdaki yeni şekilde, gelen 52 değeri, kök düğüm olan 50’den başlanarak ağaçta ufak bir dolaşmaya sebep olur. Öncelikle 50’den küçük olduğu için bu düğümün sağına sonra da 97’den küçük olduğu için bu düğümün soluna yerleştirilir.
52 değerinin, 50 değerinin sağına yerleştirilmemesinin sebebi, bu durumda ağaçta iki veri ve iki çocuk bulunan aşağıdaki hayali ağacın oluşmasıdır:
Yukarıdaki bu hayali ağaç ne yazık ki 2-3 ağaçlarında yer almaz. Tekrar hatırlatacak olursak 2-3 ağaçlarında 2 düğümlerinin 2 çocuk ve bir verisi, 3 düğümlerinin ise 3 çocuk ve 2 verisi bulunur. Yukarıdaki kök düğüm ise 2 veri ve 2 çocuk bulundurmaktadır. Bu durum kabul edilemez.
Yeni eklenen değerimiz 19:
Yukarıdaki bu yeni ağaç yapısı, bir önceki adımda açıklandığı gibi, 50’nin yanına yeni bir veri eklenememesinden dolayı, 50’nin solundaki düğüme eklenmesi sonucunda elde edilmiştir.
Sıradaki eklenecek olan veri 11’dir. Eklenmiş halini görmeden önce, hayali olarak ağaçta olması beklenen adımları açıklayalım. Öncelikle verinin eklenmek isteneceği yer, 50 değerindeki kök düğümünün soludur.
Yukarıdaki hayali ağaç, ne yazık ki 2-3 ağaçları tarafından kabul edilemez. Dolayısıyla üç veri içeren bu düğümü tek başına ele aldığımızda (ki aynı durum, örneğimizde 97 eklenirken de yaşanmış ve 3 adet veri yan yana elde edilmesin diye 3 adet 2 tipinde düğüme dönüştürülmüştü) bölünme işlemi gerçekleştirilir:
Yukarıdaki bu alt ağacı, bir önceki ağacımız ile birleştirirsek:
Elde ettiğimiz yeni ağaç, yukarıdaki şekilde iki ağacın birleştirilmiş hali olur.
Son olarak ekleyeceğimiz değer 111 olsun. Bu değer eklendiğinde ağaçta bir zincirleme reaksiyon oluşur ve birden fazla düğümün yukarıya doğru bölünmesi gerekir. Öncelikle 111 değeri 50’den büyük olduğu için, ağaçta 50’nin sağındaki gösterici (pointer) tarafından gösterilen düğüme yönlendirilir ve sanki aşağıdaki hayali ağacın oluşmasına sebep olur:
Elbette yukarıdaki bu 3 veriyi yan yana tutan düğümü kabul edemeyeceğimiz için bu düğümü bölüyoruz:
Bu sefer kök düğümdeki 3 veriyi kabul edemeyeceğimizden dolayı, kök düğümü de bölüyoruz:
Sonuçta, yukarıdaki ağaç 2-3 ağacı olarak bütün değerlerin eklendiği ağaçtır. Buradaki son bölünmeden sonra toplam 7 adet 2 tipinde düğüm elde edilmiştir. Ayrıca yukarıdaki ekleme işlemleri boyunca her adıma bakıldığında ağacın dengeli bir ağaç olduğu (bütün yaprak düğümlerinin (leaf nodes) aynı seviyede olduğu ) görülebilir.
Aslında yukarıdaki isimlendirmeler, B-Ağacının (B-Tree) özel bir şekli olarak düşünülebilir. Yani, düğüm boyutu 2 olan bir b-ağacında, her düğümde ya iki ya da tek eleman bulunacak ve bulunan eleman sayısının bir fazlası kadar çocuk bulunacaktır.
2-3 Ağaçları, AA ağaçlarının (AA-trees), eş şekillisi (isometry) olarak düşünülebilir.

B Ağacı (B-Tree)

İsminin nereden geldiği (B harfinin) tartışmalı olduğu bu ağaç yapısındaki amaç arama zamanını kısaltmaktır. Buna göre ağacın her düğümünde belirli sayıda anahtar veya kayıt tutularak arama işleminin hızlandırılması öngörülmüştür.
Arama hızının artmasına karşılık silme ve ekleme işlemlerinin nispeten yavaşlaması söz konusudur.
1. B-Ağacının tanımı
Bir B-Ağacı (B-Tree) aşağıdaki özelliklere sahip olmalıdır:
  • Her düğümün (node) en fazla m çocuğu bulunmalıdır. (Bu sayının üzerinde eleman bulunursa düğümün çoğaltılması gerekir)
  • Kök (root) ve yaprak (leaf) düğümleri haricindeki her düğümün en az m/2 adet elemanı bulunmalıdır. (Bu sayının altında eleman bulunursa düğüm kaldırılır)
  • Bütün yapraklar aynı seviyede olmak zorundadır. Bir yaprağın seviyesinin düşmesi durumunda (daha yukarı çıkması veya daha sığ olması durumunda) ağaçta yapısal değişiklik gerekir.
  • Herhangi bir düğümde k çocuk bulunuyorsa k-1 elemanı gösteren anahtar (key) bulunmalıdır.
2. Örnek B-Ağacı
Aşağıda örnek bir b ağacı gösterilmiştir:
Aşağıda b ağacı üzerinde yapılan ekleme, silme ve arama işlemleri açıklanmıştır.
3. B Ağacında Arama
Bağacında (Btree) arama işlemi kökten başlar. Aranan sayı kök düğümde bulunamaması halinde arama işlemi kökte bulunan anahtarların sağında solunda veya arasında şeklinde yönlendirilir. Örneğin yukarıdaki B-ağacında 87 anahtarı aranıyor olsun. Arama işlemi için aşağıdaki adımlar gerekir:
1. kök düğüme bakılır. 87 değeri 65’ten büyüktür. Kök düğümde tek anahtar olduğu için 65’in sağındaki gösterici(pointer) takip edilir.
2. 65. sağındaki düğüme gidilir ve ilk anahtar olan 82 ile aranan anahtar olan 87 karşılaştırılır. 87 değeri 82’den büyüktür. Öyleyse ikinci anahtar olan 97 ile karşılaştırılır. 87 bu değerden küçük olduğu için bu düğümde 82 ile 97 arasında bulunan gösterici izlenir.
3. Son olarak 82 ile 97 arasındaki düğüm izlenerek ulaşılan düğümdeki anahtar ile 87 karşılaştırılır. Bu düğümdeki ilk anahtar 85’tir. 87 bu değerden büyüktür. Düğümdeki bir sonraki anahtar alınır ve 87 değeri bulunur.
B-ağaçlarının bir özelliği ağacın her düğümündeki anahtarların sıralı oluşudur. Bu yüzden bir düğümde istenen anahtar aranırken, düğümde bulunan sayılara teker teker bakılır (linear search, doğrusal arama)
4. B Ağacına Ekleme
B ağaçlarında veri yaprak düğümlerden gösterilir (pointer). Yani aslında veri ağacın düğümlerinde değil son düğümlerden gösterilen hafıza bölmeleri (RAM veya Dosya) olarak tutulur. Dolayısıyla B ağacında ekleme işlemi sırasında anahtarlar üzerinden arama ve değişiklikler yapılır ve nihayetinde amaç B ağacının son düğümleri olan yaprak düğümlerden veriyi göstermektir.
B ağaçlarında veri eklemek için aşağıdaki adımlar takip edilir:
1. Ağaçta eklenecek doğru yaprak düğümü aranır. (Bu işlem için bir önceki adımda anlatılan arama algoritması kullanılır)
2. Şayet bulunan yaprak düğümde azami anahtar sayısından (maximum key number) daha az eleman varsa (yani anahtar eklemek için boş yer varsa) bu düğüme ekleme işlemi yapılır.
3. Şayet yeterli yer yoksa bu durumda bulunan bu yapra düğüm iki düğüme bölünür ve aşağıdaki adımlar izlenir:
1. Yeni eleman eklendikten sonra düğümde bulunan anahtarlar sıralanır ve ortadaki elemandan bölünür. (median değeri bulunur)
2. Ortanca değerden büyük elemanlar yeni oluşturulan sağ düğüme ve küçük elemanlar da sol düğüme konulur.
3. Ortanca eleman (median) ise bir üst düğüme konulur.
Yukarıdaki ekleme işlemini aşağıdaki örnek ağaç üzerinden görelim.
bagaci1
Örneğin azami anahtar sayısıs 2 olan yukarıdaki örnek ağaçta ekleme işlemi yapalım ve değer olarak 60 ekleyelim:
bagaci2
Yukarıdaki ekleme işlemi, ekleme algoritmamızdaki 2. durumda gerçekleşmektedir. Yani anahtarımızın ekleneceği yaprakta boş yer bulunmaktadır ve buraya yeni anahtarı ekleriz.
Şayet yukarıdaki ağaca 80 değerini ekleyecek olsaydık bu durumda da algoritmamızdaki 3. ihtimal gerçekleşmiş olacaktı.
bagaci3
Görüldüğü üzere 80 anahtarının ekleneceği düğüm dolmuş ve azami 2 anahtar olamsı gerekirken 3 anahtar olmuştur. Ortanca değer (median) 70 olan bu ekleme işleminden sonra ortanca değer bir üst düğüme çıkmış ve iki farklı düğüme ortanca elemanın solundaki ve sağındaki değerler yukarıdaki şekilde dağıtılmıştır.
5. B Ağacından Silme
B ağacı yukarıdaki özellikleri bölümünde anlatılan özelliklerin bozulmaması için silme işlemi sırasında aşağıdaki iki yöntemden birisini izler:
1. çözümde ağaçtan ilgili anahtar bulunup silinir ve bütün ağaç yeniden inşa edilir
2. çözümde ağaçtan ilgili anahtar bulunup silinir ve bulma işlemi sırasında geçilen ağacın kısımları yeniden inşa edilir.
Ayrıca B+ ağacı (B plus tree) ve B# ağacı (B number tree) şeklinde alt çeşitleri de bulunmaktadır.

Trie (Metin Ağacı)

Metin ağaçları, onu düğümün kendisinden sonra gelen harfi İşaret Ettiği  ağaçlardır . Basitçe ağacın Üzerine Bir metin kodlanabilir ziyaretinde bu Metni veren ağacın uzerinde tek Bir Yol Izlenebilir (deterministik). Durum aşağıdaki örnek uzerinde Daha Rahat anlaşılabilir:
Yukarıdaki ağaçta dikkat edilirse kök düğüm onu ​​zaman boş Metni (string) ifade etmektedir. Bu boş metin hangi harf ile devam edilirse Ilgili kolu takip eder ziyaretinde gitmiş Olduğu düğüm o ana Kadar geçmiş Olduğu kollardaki harflerin birleştirilmiş halidir. Bir düğümden bir harf Taşıyan Sadece Bir kol çıkabilir.
Trie ağacının ismi re tray val kelimesininin ortasındaki 4 harften gelmektedir.
Metin ağaçlarının (tray), ikili arama ağaçlarına Göre tr önemli Diğer Avantajları Bir Metni aramanın, metin BOYUTU Kadar Işlem gerektirmesidir. İkili arama ağaçlarında imkb bu Süre log n Kadar varkit almaktadır. Buradaki n, ağaçtaki düğüm sayısıdır dolayısıyla ikili arama ağaçları , ağaçtaki Bilgiye Göre Hızlı VEYA yavaş Çalışırken, metin ağaçları, ağaçta ne kadar Bilgi bulunduğundan Bağımsız Olarak çalışırlar.     
Metin ağaçları hafızayı da Verimli kullanırlar göster çünkü Bir metin ağacının en derin Noktası, ağaç Üzerindeki en uzun metin kadardır. İkili ağaçlar da imkb bu derinlik Eklenen düğüm sayısına Göre en kötü ihtimalle düğüm Sayısı Kadar olabilmektedir.   
AYRICA metin ağaçları en uzun önek eşlemesi (uzun önek eşleştirme) gibi problemlerin çözümünde de Avantaj Sağlar.  

Patricia ağacı (PATRICIA Tree)

Bilgisayar bilimlerinde sıkça kullanılan TRIE ağacının özel bir hali olan patricia ağacında genellikle sözlüksel olarak (lexiconically) veriler tutulur. Radix ağacı (radix tree) ve farklı ikil ağacı (crit bit tree) ile oldukça benzer olan patricia ağacının, TRIE ağacından en büyük farkı tutulan verilerin ortak olan noktalarından sonra farklılaşılan yönlerine göre dallanma olmasıdır.
Aşağıda verilen kelimelerin ağaçta tutulmaları gösterilmiştir:
  • Evren
  • Evreşe
  • Evreka
  • Evrensel
Yukarıdaki şekilde de gösterildiği üzere ağacın dallanmaları verilen kelimelerin birbiri ile farklılaştıkları noktalarda olmaktadır.

Yinelemeli Derinleşen Derin Öncelikli Arama Algoritması (Iterative Deepining Depth First Search, IDDFS)

Bilgisayar bilimlerinin Çeşitli alanlarında (örneğin yapay zeka, veri Yapıları VEYA sekil kuramı (grafik teorisi) gibi) Kullanılan arama algoritmalarından birsidir.

Algoritma, derin Öncelikli dram (derinlik ilk arama) Üzerine kurulu oldugu icin, literatürde "yinelemeli derinleşen derinliği ilk arama (yinelemeli derinleşen, derin Öncelikli arama)" Olarak da geçmektedir.  

Algoritma basitçe derinlik değerini Bir ​​değişkende tutmakta bu ona Adımda arttırmaktadır. Değeri ziyaretinde
ona Adımda derinliğin, bir döngü değişkeni (döngü değişkeni) gibi düşünülerek derinleştiği Kabil Edilebilir ziyaretinde Yineleme Yapısı (yineleme) Basit bir döngü (loop) Olarak dusunulebilir.

Örneğin aşağıdaki şekli (grafik) ele alalım:

Cyclictree
Ağaçta görüldüğü Üzere İki adet döngü (döngü) bulunmaktadır. İteratif Derinleşme arama algoritmasını bu ağaç uzerinde çalıştıracak olursak, algoritma Öncelikle derinlik değerini (bundan Sonra d değişkeni (değişken) ile ifade edilecektir) ona Adımda Bir ilerletecektir başlatarak 0'dan.  
d = 0 göster arama Click:
Bir
, d = 1 için arama:
A (tekrar A değerine bakar) M.Ö. (sanki ağacın en üstteki üç düğümü, sekılde gösterildiği gibi bağlanmış Kabil Edilebilir, daha alttaki derinliklerde Bulunan DEFG düğümlerine hiç bakamaz)
göster arama Click d = 2 :
ABDECFG (Bu aramada sanki sondaki daireler (döngü) bulunmuyormuş gibi Kabil Edilebilir, göster çünkü belirtilen derinlik bu dairelere Kadar inemez)
d = 3 göster arama Click:
ABDBECFGA
: arama Click d = 4
ABDBDEBCFGABC
Yukarıdaki arma İşlemi, derinlik arttıkça devam etmektedir.

Arama algoritmalarının değerlendirildiği Bazi kriterler bulunmaktadır. Buna Göre IDDFS (iteratif derinleşme derinliği ilk arama) algoriması "tam" algoritma Olarak Kabil Edilebilir. Tamlık Teriminin (tamlık) anlamı aşağıdaki sekılde tanımlanabilir:
 
Bir arama algoritması, bütün düğümleri dolaşarak aranan düğümü bulmayı garanti ediyorsa bu algoritmaya tam arama algoritması ismi verilir.
Örneğin yine yukarıdaki sekil Click klasik derin Öncelikli arama (derinlik ilk arama) algoritmasını ele alsaydık, bu algoritmanın tam olmadığını söyleyebilirdik. Eklendi bunun sebebi DFS algoritmasının dolaşması sırasında, aşağıdaki döngüye girmesidir:
ABDBDBD (BD ikilisi sosuza Kadar tekrar eder)
Kısacası ABD düğümleri dışındaki düğümlere asla bakmaz. Bu anlamda tam olmadığını söyleyebiliriz.
BFS (birinci arama, yayılma Öncelikli VEYA sığ Öncelikli arama genişlik)  her zaman Click tam Kabul Edilebilir ISE algoritması, sebebi Bir ​​Sonraki derinlik seviyesine inmeden sonra, Bulunduğu seviyedeki düğümleri bitirmesi ziyaretinde bu sayede Bütün Ağaca bakmayı garanti etmesidir.
Algoritmanın karmaşıklığına  değinecek olursak. Aşağıdaki sekılde Bir formül ile karşılaşırız.
Iddscompleks
Bu formülde Görülen terimler sekil kuramında (grafik teorisi) Sıkça Kullanılan Bazi değerlere atıfta bulunur.
d değerinin derinlik oldugunu Daha Önce belirtmiştik. b ile gösterilen Değer imkb dallanma katasyısıdır (faktör dallanma).
Kısaca ona  düğümün kaç çocuğu Olduğu (sipariş üzerinden, kaç düğüme gidilebildiği)  Olarak Tutulur. Örneğin tam dolu ikili arama ağacının (ikili arama ağacı) Değeri 2'dir, b. Genelde en kötü durum analizinde bütün, Çocukların dolu Olması ihtimali uzerinde durulur. AYRICA İstatistiksel Olarak ortalamam çocuk sayısının da Alındığı olur. Örneğin Şehirlerin tutulduğu bır sekılde onu şehirden gidilebilecek Şehir Sayısı değişmektedir. Bu b DURUMDA Değeri Ortalama Değer Olarak hesaplanabilir.  

Bu açıklama Ardından yukarıdaki denkleme tekrar bakarak anlamaya çalışalım.

IDDFS algoritmasında, tr altta Bulunan imkb 2 kere dolaşıldığını ziyaretinde böylece düğümlerin 1 kere (d sabitlendiğinde en altta kalan Düğümler hangileri imkb) dolaşıldığını, d-1 derinliğindeki düğümlerin kök düğüme (kök) Kadar onun düğümün, bulundugu seviyeye Göre kaç kere dolaşıldığını hesaplayabileceğimize Göre yukarıdaki denklem çıkarılabilir.  

Diğer Bir deyişle d = 0 oldugunda kök 2 1 kökün Çocukları 1 ziyaretinde = kök 1 kere dolaşılırken d Click kere dolaşılmış olur. = 3 oldugunda kök 3 kere d çocukları 2 tr ziyaretinde ziyaretinde alttaki Çocuklar imkb 1 kere dolaşılmış olur. Görüldüğü onu artışında kök derinlik Kadar Altındaki onu düğüm imkb birer azalarak en nihayetinde derinliğin Üzere  yapraklar (yaprak)  tek bir kere dolaşılmış olmaktadır.

SONUÇ Olarak Yukarıdaki formülün ilk terimi kök (d + 1) 1 (tek düğüm d + 1 kere dolaşılmıştır), ikinci terimi kökün çocukları (db (kökün çocukları (ki Sayısı b'dir) derinlik Kadar (ki d ile gösterilir) dolaşılmıştır).

Yukarıdaki bu formülü Daha toplu sekılde aşağıda gösterildiği gibi yazabiliriz:
Iddskompleks2

Algoritmanın dolaşma (arama) zamanı karmaşıklığı yukarıda gösterildiği Gibidir. Terimler birleştirildiğinde  en kötü durum analizi (en kötü durum analizi)  Click O (b d ) gösterimi Kullanılabilir.

Hafıza karmaşıklığı imkb O (bd) olarak ifade Edilebilir. Eklendi bunun sebebi d derinliğindeki Bir ağacın b onun seviyesinde adet çocuğu bulunması durumunda bd Kadar düğüm olacağıdır. Algoritma, çalışması sırasında ilave etmek, düğümlere ve İhtiyaç duymaz ziyaretinde şeklin kendisi uzerinde dolaşarak sonuca ulaşır.

Örnek 

Aşağıdaki grafikte İçin:
Graph.traversal.example.svg
Bir derinlik Öncelikli arama, bir Başlayan gösterilen grafikte, sol kenarlari Sağ kenarlarına ÖNCE Seçilmiş oldugunu varsayarak, ve, arama varsayarak, daha ÖNCE Ziyaret edilen Düğümler hatırlar ziyaretinde (bu küçük bir grafik olduğundan) Ziyaret edecek, onlari tekrarlamak istemiyorum Aşağıdaki Sırayla Düğümler: A, B, D, F, E, C, G, bu arama geçilen kenarlari Bir ​​formu Trémaux ağacı , Önemli uygulamalarla Bir yapıya grafik teorisi   
Sipariş, A, B, D, F, E, A, B, D, E, I, vb sonsuza bir yakalanmış, B, D, E düğümleri Ziyaret Daha Önce Ziyaret Düğümler sonuçları hatırlamanıza gerek kalmadan Cardio aramayı Sahne D döngüsü asla Değerlendirmeleri C ziyaretinde VEYA G
Algoritma çalışan Sol-Sağ yukarıdaki gibi devam varsayarak, bu döngü önler ziyaretinde aşağıdaki derinliklerde aşağıdaki düğümleri ulaşacak derinleşme:
  • 0: A
  • 1: (tekrar), B, C, D,
(Geleneksel derinlik Öncelikli arama vermedi zaman tekrarlamalı derinleşmenin şimdi C gordu Unutmayın).
  • 2: A, B, D, F, C, G, I, K
(Hala C görür Unutmayın, ancak Daha Sonra geldi. AYRICA on iki kez Farklı Bir yoldan E görür geri F döngüler Unutmayın ettik.)
  • 3: A, B, D, F, E, C, G, I, K, B
Daha Fazla derinlik eklendiğinde algoritma Vazgeçer Başka Bir şube çalışmadan ÖNCE bu grafik Click, iki kür "ABFE" ve "AEFB" sadece sadece uzun alirsiniz ettik.

Aşağıdaki sözde kod özyinelemeli derinliği Sınırlı DFS (denilen DLS) cinsinden Uygulanan IDDFS Gösterir.
Prosedür IDDFS (root)
      Click derinlik dan 0 Kadar ∞ 
        Bulunan ← DLS (kök, derinlik) Eger Bulundu ≠ sıfır
              yield Bulundu Prosedür DLS (düğüm, derinlik)
      imkb derinlik = 0 ziyaretinde düğüm Bir hedeftir
          Dönüş düğümü
      else if derinlik> 0
          foreach düğümün alt 
            Bulunan ← DLS (çocuk, derinlik-1) Eger Bulundu ≠ sıfır
                  yield Bulundu
      Dönüş boş