
Bu yazımda Sizlerle ağaç yapısını inceleyeceğiz ve python dilinde basit bir ağaç yapısı yazacağız.
Ağaç Yapısı Nedir
Ağaç veri yapısını açıklamak gerekirse: Hepimiz ilk okulda fen bilgisi dersinde veya lisede biyoloji dersinde soy ağacı çizmişizdir dede,baba,çocuk şeklinde bizim programlama dilindede ağaç veri yapısı aynen ona benzer.
ağacın ilk katmanına kök(root) denir.
roota bağlanan alt ağaçlara ise Çocuk denir.
- Sağ kısımdaki alt ağaca Rootun sağ child(çocuğu)denir.
- Sol kısımdaki alt ağaca rootun sol child(çocuğu) denir.
en uçtaki çocuklara ise yaprak denir.
Ağaç Yapısı Örneği

Python ile ağaç yapısı
# -*- coding: cp1254 -*-
def Agac(root):
return [root, [], []] # ağacı ve iki alt çocugunu oluşturduk
def saginaEkle(root,eklenecek):
right=root.pop(2) # sag çocugunu silip right ye atadık
if(len(right)>1): # alt çocukta eleman varsa
root.insert(2,[eklenecek,right,[]]) # sag çocuğuna alt çocuk ekledik
else: # alt çocukta eleman yoksa
root.insert(2,[eklenecek, [], []])
return root
def solunaEkle(root,eklenecek):
left=root.pop(1) # sol çocugunu silip left ye atadık
if(len(left)>1): # alt çocukta eleman varsa
root.insert(1,[eklenecek,left,[]]) # sol çocuğuna alt çocuk ekledik
else: # alt çocukta eleman yoksa
root.insert(1,[eklenecek, [], []])
return root
def KokuGetir(root): # Ağacın kökünü(root) getirir.
return root[0]
def sagCocuguGetir(root): # Ağacın Sağ Çocugunu Getirir.
return root[2]
def solCocuguGetir(root): # Ağacın Sol Çocuğu Getirir
return root[1]
Şimdi Çalıştıralım
>> agac=Agac(5) # kökü 5 olan ağaç
>>> agac
[5, [], []]
>>> saginaEkle(agac,4) # sağ çocuğa 4ü ekledik
[5, [], [4, [], []]]
>>> solunaEkle(agac,0) # soluna sıfır ekledik
[5, [0, [], []], [4, [], []]]
>>> KokuGetir(agac) # kökünü getirsin 5 gelecek
5
>>> sagCocuguGetir(agac) # sağ çocuğunu Getirsin
[4, [], []]
>>> solCocuguGetir(agac) # sol çocuğunu Getirsin
[0, [], []]
>>>
Gördüğünüz Gibi basit bir ağaç yapısı oluşturmuş olduk.
Daha fazla geliştirilebilir yeni fonksiyonlarda yazılabilir artık orası size kalmış. ekleme yaptığınız fonksiyonlarıda bana mail olarak atarsanız paylaşırım herkes faydalanır.
Unutmayalımki en iyi yazılımcı bildiğini paylaşan yazılımcıdır.
Birdahaki yazımızda görüşmek üzere...
Hiç yorum yok:
Yorum Gönder