Uygulamanın kodlarını dropboxdan indirmek için tıklayın
Sınıf diagramları büyük

Soyut olarak ağaç oluşturma:

En son çıktı en karlı durumdur:

Test.java
package ethemsulan.com;
public class Test
{
public static void main(String[] args)
{
//Baslangic degerleri,fiyat ve malzeme isimleri
Malzeme sogan = new Malzeme("Sogan", 3000, 5);
Malzeme peynir = new Malzeme("Peynir", 1000, 15);
Malzeme mantar = new Malzeme("Mantar", 2000, 20);
Malzeme biber = new Malzeme("Biber", 3000, 10);
Malzeme aci = new Malzeme("Aci", 1000, 25);
Malzeme sucuk = new Malzeme("Sucuk", 1000, 30);
MalzemeListesi ml = new MalzemeListesi();
ml.addMalzeme( sogan );
ml.addMalzeme( peynir );
ml.addMalzeme( mantar );
ml.addMalzeme( biber );
ml.addMalzeme( aci );
ml.addMalzeme( sucuk );
//Recursive olarak cagri yapiyoruz.Sanki node olusturuyormus gibi
MenuUretRecursive menuNes=new MenuUretRecursive();
//Baslangic durumda toplam malzemeleri basar.Eger // kaldirisaniz
menuNes.menuUret(ml);
}
}
Diğer kodların linkleri aşağıdadır:
Uygulamanın Raporu
MenuUretRecursive.java
MalzemeListesi.java
Malzeme.java
Pizza.java(abstract)
Vejeteryan.java
Sucuklu.java
Mantar.java
AciliVejeteryan.java

[...] Ana Sınıf Malzeme.java [...]
ethem güzelde, kod çok bu blogda
Istersen biraz sileyim. Hikaye anlatmak yerine kodun içinde yorum olarak açıklamaya çalışıyorum genelde.