5 Ocak 2014 Pazar

Python ile Ağaç Veri Yapısının Kodlanması

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...



Yayınlayan: Unknown

Python ile Ağaç Veri Yapısının Kodlanması

vehbi akdogan - kişisel blog sitesi
Share:

Yorum Yaz ..

Facebook
Blogger

Hiç yorum yok:

Yorum Gönder

Sosyal Aglarda Ben :)
facebook
twitter
google
youtube
rss

About Us

İstatistik

Iletisim

Ad

E-posta *

Mesaj *

© Vehbi Akdogan - Kişisel Blog Sitesi | Tüm Hakları Saklıdır.