İkili Arama Ağacı Nedir?

İkili Arama Ağacı, verileri düzenlememize ve sıralamamıza destek olan çeşitli veri yapılarından biridir. Verileri bir hiyerarşide depolamanın etkili bir yoludur ve oldukca esnektir.

Bu makalede, özellikleri ve uygulamalarıyla beraber iyi mi çalıştığına daha yakından bakacağız.

İkili Arama Ağacı Nedir?

Fotoğraf Kredisi: Pat Hawks/Wikimedia Commons

İkili Arama Ağacı, Bağlı Listelere benzer şekilde düğümlerden oluşan bir veri yapısıdır. İki tür düğüm olabilir: alt ve üst düğüm. Kök düğüm, sol düğüm ve sağ düğüm olarak adlandırılan iki alt düğüme dallanma yapısının başlangıç noktasıdır.

Her düğüme yalnızca üst öğesi tarafınca başvurulabilir ve yöne bağlı olarak ağacın düğümlerinden geçebiliriz. İkili Arama Ağacı’nın üç ana özelliği vardır:

  1. Sol düğüm üst düğümünden daha ufak.
  2. Sağ düğüm üst düğümden büyük.
  3. Sol ve sağ alt ağaçlar İkili Arama Ağaçları olmalıdır.

Tüm düzeyler dolduğunda ve her düğümün bir sol ve sağ alt düğümü olduğunda Muhteşem İkili Arama Ağacı elde edilir.

İlgili: Python için Veri Bilimi Kütüphaneleri Her Veri Bilimcisi Kullanmalıdır

İkili Arama Ağacının Temel İşlemleri

Artık İkili Arama Ağacı’nın ne olduğu hakkında daha iyi bir fikriniz var, aşağıdaki temel işlemlerine bakabiliriz.

1. Arama İşlemi

Arama, ağaçta bulunan belirli bir kıymeti bulmamızı sağlar. İki tür arama kullanabiliriz: genişlik-ilk arama (BFS) ve derinlik-ilk arama (DFS). Genişlik-ilk arama, kök düğümden süregelen ve hedef bulunana kadar yatay olarak, yana doğru geçiş meydana getiren bir arama algoritmasıdır. Her düğüm bu arama esnasında bir kez ziyaret edilir.

Öte taraftan, derinlik ilkin arama, kök düğümden başlayarak ve tek bir dalda emek vererek ağacı dikey olarak geçer. Amaç bulunursa, işlem sonlanmış olur. Sadece değilse, öteki düğümleri arar.

2. Ekleme İşlemi

Ekleme işlemi, yeni düğümün eklenmesi ihtiyaç duyulan konumu belirlemek için arama işlemini kullanır. İşlem kök düğümden adım atar ve hedefe ulaşılana kadar arama adım atar. Ekleme ile dikkate alınması ihtiyaç duyulan üç durum vardır.

İkili Arama Ağacı Kök Düğüm Ekle

İkili Arama Ağacı Alt Düğüm Ekle

İkili Arama Ağacı Birden Çok Düğüm Ekle

3. İşlemi Sil

Silme işlemi, ağaç içindeki belirli bir düğümü kaldırmak için kullanılır. Silme, bir düğümü kaldırdıktan sonrasında ağacın buna gore tekrardan düzenlenmesi gerektiği için zor olarak kabul edilir. Dikkate alınması ihtiyaç duyulan üç ana durum vardır:

İkili Arama Ağacı Yaprak Düğümünü Sil

İkili Arama Ağacı Üst Düğümü Sil 1

İkili Arama Ağacı Üst Düğümü Sil 2

İlgili: JavaScript ES6 sınıfları ile veri yapıları iyi mi inşa edilebilir

İkili Arama Ağacında Iyi mi Geçnişi

Geçiş, İkili Arama Ağacı’nda gezindiğimiz işlemdir. Belirli bir öğeyi bulmak yada ağacın anahattını yazdırmak için yapılır. Daima kök düğümden başlarız ve öteki düğümlere ulaşmak için kenarları takip etmeliyiz. Her düğüm bir alt ağaç olarak kabul edilmelidir ve tüm düğümler ziyaret edilene kadar işlem yinelenir.

İkili Arama Ağacı Sıralayıcı Sıralaması

İkili Arama Ağacı Ön Sipariş Sıralaması

İkili Arama Ağacı Posta Sipariş Sırala

Gerçek Dünya Uygulamaları

Peki, ikili arama ağacı algoritmalarını iyi mi kullanırız? Tahmin edilebilir, arama ve sıralamada son aşama verimlidirler. İkili ağaçların en büyük gücü organize yapılarıdır. Çözümleme etmemiz ihtiyaç duyulan veri miktarını geçiş başına yarı yarıya azaltarak aramanın dikkat çekici hızlarda yapılmasını sağlar.

İkili Arama Ağaçları, dinamik olarak değişen bir veri kümesini tertipli bir halde verimli bir halde korumamızı sağlar. Sık sık veri eklenen ve kaldırılan uygulamalar için oldukca yararlıdır. Video oyun motorları, nesneleri tertipli olarak işlemeye destek olmak için ikili alan kısmı olarak malum ağaçları temel alan bir algoritma kullanır. Microsoft Excel ve bir çok elektronik tablo yazılımı, temel veri yapısı olarak ikili ağaçları kullanır.

Mors alfabesi verileri kodlamak için ikili arama ağacı kullandığını bilmek sizi şaşırtabilir. İkili Arama Ağaçlarının bu kadar yararlı olmasının bir başka mühim sebebi de çoklu varyasyonlarıdır. Esneklikleri, her türlü problemi çözmek için oldukca sayıda varyant oluşturulmasına yol açmıştır. Muntazam kullanıldığında, İkili Arama Ağaçları mükemmel bir varlıktır.

İkili Arama Ağaçları: Muhteşem Başlangıç Noktası

Bir mühendisin uzmanlığını ölçmenin ana yollarından biri, veri yapılarını tanımaları ve uygulamalarıdır. Veri yapıları yararlıdır ve daha verimli bir sistem oluşturmanıza destek olabilir. İkili Arama Ağaçları, herhangi bir geliştirici için veri yapılarına mükemmel bir giriştir.