30 Eylül 2012 Pazar

Tree Application

Urun.java



public class Urun {

private String urunAdi;
private int fiyat;

public Urun(String urunAdi, int fiyat) {
super();
this.urunAdi = urunAdi;
this.fiyat = fiyat;
}

public String getUrunAdi() {
return urunAdi;
}

public int getFiyat() {
return fiyat;
}

@Override
public String toString() {
return "Urun [urunAdi=" + urunAdi + ", fiyat=" + fiyat + "]";
}

}



Node.java


public class Node {

Urun urun;
Node leftChild;
Node rightChild;

public Node(Urun urun)
{
this.urun = urun;
}

}



Tree.java



public class Tree {

private Node root;

public Tree()
{
root = null;
}

public Node getRoot()
{
return root;
}

public void ekle(Urun yeniUrun)
{
Node yeniNode = new Node(yeniUrun);

String urunAdi = yeniUrun.getUrunAdi();

if(root == null)
root = yeniNode;
else
{
Node gecici = root;
Node parent;

while(true)
{
parent = gecici;

if(gecici.urun.getUrunAdi().compareTo(urunAdi) < 0)
{
gecici = gecici.leftChild;

if(gecici == null)
{
parent.leftChild = yeniNode;
return;
}
}
else
{
gecici = gecici.rightChild;

if(gecici == null)
{
parent.rightChild = yeniNode;
return;
}
}
}


}

}

public int elemanSay(Node node)
{
if(node == null)
return 0;

return 1 + elemanSay(node.leftChild) + elemanSay(node.rightChild);
}

public int topDerinlik(Node node, int derinlik)
{
if(node == null)
return 0;

return derinlik + topDerinlik(node.leftChild, derinlik) + topDerinlik(node.rightChild, derinlik);
}

public int maxDerinlik(Node node, int derinlik)
{
if(node == null)
return 0;

else if(node.leftChild == null && node.rightChild == null)
return derinlik;

else
{
int maxLeft = maxDerinlik(node.leftChild, derinlik);
int maxRight = maxDerinlik(node.rightChild, derinlik);

if(maxLeft > maxRight)
return maxLeft;
else
return maxRight;
}
}

public void inOrder(Node node)
{
if(node != null)
{
inOrder(node.leftChild);
System.out.println(node.urun.toString());
inOrder(node.rightChild);
}
}

}


Test.java


import java.util.ArrayList;


public class Test {

public static void main(String args[])
{
ArrayList<Urun> list = urunler();

Tree tree = new Tree();

for(int i=0;i<list.size();i++)
tree.ekle(list.get(i));

int elemanSayisi = tree.elemanSay(tree.getRoot());
int toplamDerinlik = tree.topDerinlik(tree.getRoot(), 0);
int maximumDerinlik = tree.maxDerinlik(tree.getRoot(), 0);

tree.inOrder(tree.getRoot());

System.out.println("Eleman Sayisi: "+ elemanSayisi);
System.out.println("Toplam Derinlik: "+ toplamDerinlik);
System.out.println("Maximum Derinlik: "+ maximumDerinlik);

}

private static ArrayList<Urun> urunler() {

int[] fiyatlar = {550,120,20,720,960,30,60,140,840,630};
String[] isimler = {"masa","koltuk","tabak","catal","kasik","bardak","laptop","tv","radio","dolap"};

ArrayList<Urun> liste = new ArrayList<Urun>();

for(int i=0;i<fiyatlar.length;i++)
{
liste.add(new Urun(isimler[i], fiyatlar[i]));
}

return liste;
}

}

Hiç yorum yok:

Yorum Gönder