Binary Tree Algoritması: Verileri Hiyerarşik Yapıda Yönetmenin Temel Yolu
Giriş
Gelişen yazılım dünyasında, verinin sadece depolanması değil, aynı zamanda verimli bir şekilde işlenmesi de büyük önem taşır. Bu noktada veri yapıları, programlama dünyasında hayati bir rol oynar. En çok karşılaşılan yapılardan biri olan binary tree (ikili ağaç), hiyerarşik bir şekilde veri düzenlemenin güçlü bir yoludur.
İkili ağaçlar; bilgisayar biliminde arama algoritmalarından oyun motorlarına, yapay zeka karar mekanizmalarından veri indekslemeye kadar geniş bir yelpazede kullanılmaktadır. Bu yazıda, binary tree’nin ne olduğunu, nasıl çalıştığını ve nasıl kodlandığını detaylıca ele alacağız.
Binary Tree Nedir?
Binary Tree, yani ikili ağaç; her düğümün (node) en fazla iki çocuğa sahip olabildiği bir veri yapısıdır. Bu çocuklar genellikle sol (left) ve sağ (right) olmak üzere ikiye ayrılır. Yapının en üstünde yer alan düğüme kök (root) adı verilir. Düğümler aşağı doğru dallanarak ağacı oluşturur.
İkili ağaçlar, genellikle şu özellikleri taşır:
- Her düğüm yalnızca bir ebeveyne sahiptir.
- Her düğümün en fazla iki çocuğu olabilir.
- Ağaç, belirli kurallar altında şekillenebilir (örneğin Binary Search Tree gibi).
İkili Ağaçların Kullanım Alanları
- Binary Search Tree (BST) ile hızlı veri arama
- Huffman ağacı gibi yapılarla veri sıkıştırma
- İfade ağaçları (expression tree) ile matematiksel ifadelerin çözümü
- Yapay zeka alanında karar ağaçları
- Dosya sistemleri ve klasör yapıları
- Oyun motorlarında sahne ağacı (scene graph)
Binary Tree Türleri
- Full Binary Tree: Her düğümün ya 0 ya da 2 çocuğu vardır.
- Complete Binary Tree: Son seviye hariç tüm seviyeler tamamen doludur ve son seviye sola yaslıdır.
- Perfect Binary Tree: Tüm seviyeler tamamen doludur.
- Balanced Binary Tree: Sol ve sağ alt ağaçların yüksekliği arasında fark en fazla 1’dir.
- Binary Search Tree (BST): Sol alt ağaçtaki tüm değerler kökten küçük, sağ alt ağaçtaki tüm değerler kökten büyüktür.
Binary Tree’yi Python ile Kodlama
Node Sınıfı Oluşturma

Ekleme (Insert) Fonksiyonu
Bu fonksiyon, BST kurallarına göre yeni verileri yerleştirir.

Ağacı Gezme (Traversal)
İkili ağaçlarda üç temel dolaşım (traversal) yöntemi vardır:

Zorluklar ve Dikkat Edilmesi Gerekenler
- Dengesiz ağaçlar (unbalanced trees) arama süresini uzatır.
- BST’de veri sıralı eklenirse yapı linked list gibi olur. Bu durumda AVL veya Red-Black Tree gibi dengeli ağaçlar kullanılmalıdır.
- Derinlik fazla olursa, dolayısıyla özyineleme (recursion) stack taşmalarına sebep olur.
Sonuç
Binary tree yapıları, algoritma ve veri yapıları alanının en temel ve en güçlü araçlarından biridir. Basit yapısına rağmen sunduğu hiyerarşik model sayesinde karmaşık verileri bile kolaylıkla düzenler, arar ve işler. Yazılım geliştiriciler için binary tree’yi anlamak, daha büyük algoritmik düşünme becerilerinin temelini oluşturur.
İlerleyen yazılarda AVL Tree, Red-Black Tree ve Binary Heap gibi daha gelişmiş ağaç yapılarının detaylarına da girebiliriz.
