25 Şubat 2012 Cumartesi

Sıralı İkili Ağaçlar

Ağaçların özel bir hali olan ikili ağaçların daha da özel hali sıralı ikili ağaçlarda aynı atası ikili ağaçlar gibi en fazla 2  çocuk düğüme sahiptir.Bu tip ağaçlarda kök düğümün solundaki değerler kökten küçük sağındaki değerler ise kökten büyük olmak zorundadır.Bu durum tam tersi şekilde de işleyebilir.Aşağıda bir sıralı iki ağaca ekleme işlemi yapan Java program kodu bulunmktadır.Dugum ve Agac adında iki sınıf bulunmaktadır.


Kaynak kod devamındadır.

Düğüm Sınıfı
package agac;
public class Dugum {

    private int veri;
    private Dugum sol;
    private Dugum sag;

    public Dugum(int veri){
        this.veri=veri;
        sol=null;
        sag=null;
    }

    public void setVeri(int veri){
        this.veri=veri;
    }

    public int getVeri(){
        return veri;
    }

    public void setSol(Dugum d){
        this.sol=d.sol;
    }

    public Dugum getSol(){
        return sol;
    }

    public void setSag(Dugum d){
        this.sag=d.sag;
    }

    public Dugum getSag(){
        return sag;
    }
}

Ağaç Sınıfı

package agac;
public class Agac {


    private static Dugum kok;


    public Agac(){
        kok=null;


    }
    
    public void ekle(Dugum agacKok,int veri){
        Dugum d=new Dugum(veri);
        if(agacKok==null){
            agacKok=d;
        }
        else{
            if(veri<=agacKok.getVeri()){
                if(agacKok.getSol()==null)
                    agacKok.setSol(d);
                else{
                    ekle(agacKok.getSol(),veri);
                }
            }
            else{
                if(agacKok.getSag()==null){
                   agacKok.setSag(d);
                }
                else{
                    ekle(agacKok.getSag(),veri);
                }
            }
        }
    }
    
    public static void main(String []args){
        Agac a=new Agac();
        a.ekle(kok, 5);
        a.ekle(kok, 20);
        a.ekle(kok,3);        
    }


}

Hiç yorum yok:

Yorum Gönder