Java Ağaç veri yapısı (Tree Data Structure)

Açıklama

  • İkili arama ağacı ( Binary Search Tree ) veri yapısının uygulaması yapılmıştır.
  • Bu uygulamada ağaça ekleme, silme ve listeleme yapılabilir.

 

Görsel olarak gösterim

Java binary search tree

 

Kod

public class agac {

	Dugum kok;
	
	agac(){
		kok=null;
	}
	
	void listele(Dugum d) {
		if(d.sol!=null) {
			listele(d.sol);
		}
		System.out.print(d.icerik+" ");
		if(d.sag!=null) {
			listele(d.sag);
		}
		
	}
	
	void ekle(Dugum yeni) {
		Dugum tmp=kok,once=null;
		
		while(tmp!=null) {
			once=tmp;
			if(yeni.icerik>tmp.icerik)
				tmp=tmp.sag;
			else
				tmp=tmp.sol;
		}
		
		if(once==null) {
			kok=yeni;
		}else {
			if(yeni.icerik>once.icerik)
				once.sag=yeni;
			else
				once.sol=yeni;
		}

	}
	
	void sil(int anahtar) {
		
		Dugum tmp=kok,once=null;
		boolean solmu =true;
		
		while(tmp.icerik!=anahtar){
			once=tmp;
			
			if(anahtar>tmp.icerik) {
				solmu=false;
				tmp=tmp.sag;
				
			}else {
				solmu = true;
				tmp=tmp.sol;
			}
			if(tmp==null)
				return;
		}
		
		if(tmp.sol==null && tmp.sag==null) {
			if(tmp==kok) kok=null;
			else if(solmu) once.sol=null;
			else once.sag=null;
			
		}
	}	
}

class Dugum{
	Dugum sag,sol;
	
	int icerik;
	
	public Dugum(int icerik) {
		this.icerik=icerik;
		sag=null;
		sol=null;
	}
}

Yorumlar

Bu gönderi için yorum yapılmadı.