03/12/2008, 00:36
Program javada lifo stack yapısı tüm acıklamalarıyla anlatıyor. class yigin{
int i=-1;
int dizi[]=new int[10];
yigin(){
this.i=i;
}//yapılandırıcı method
int yiginbosmu(){
if(i==-1) System.out.println("yigin bostur.");//yigin bos mu degil mi kontrol et.
return -1;
}
int yigindolumu(){
if(i==10) System.out.println("yigin doludur.");//yigin dolu mu degil mi kontrol et.
return -1;
}
int yiginaekle(int deger){
yigindolumu();//yigindolumu methodunu cagırarak kontrol ettik.eger yıgın dolu degilse işlem yapabilecek.
++i;//i yi 1 artır,örneğin -1 ise 0 yap ve
dizi[i]=deger;//0.elemanın üzerine yeni degeri yaz.
return deger;
}
int yigindancikar(){
int deger;
int j;
yiginbosmu();//yıgın bos mu diye kontrol ettik ve eger bossa diger ifadelere gecmeden direk sonlanacak.
deger=dizi[i];
i--;
return deger;//i yi azalttık ve yıgınımızdan 1 eleman attık yani yıgınımızı 1 küçülttük(yani 15 ise 14 oldu).
}
}
class yigindeneme{
public static void main(String args[]){
yigin nesne1=new yigin();//"yigin" tipinde yeni bir nesne tanımladık.biliyoruz ki new komutu ile nesne tanımladıgımız zaman bize
// ismi bellegin stack bölgesinde,degiskenin kendisi ise bellegin heap bölgesinde tutulan bir degisken veriyordu.
//yigina istedigim sayilari ekledim.
nesne1.yiginaekle(1);
nesne1.yiginaekle(2);
nesne1.yiginaekle(3);//yıgına 3 sayısını ekle.
nesne1.yiginaekle(4);
nesne1.yiginaekle(10);
nesne1.yiginaekle(20);//yıgına 20 sayısını ekle.
nesne1.yiginaekle(30);
nesne1.yiginaekle(40);
nesne1.yiginaekle(100);
nesne1.yiginaekle(200);
int j=0;
//BURADA HERHANGİ BİR DONGU KULLANARAK YIGININ ELEMANLARINI DÖNGÜ İLE DE YAZDIRABİLİRİZ.BEN DAHA İYİ GÖRÜLMESİ İÇİN FARKLI DEGERLER KOYDUM.
for ( j = 0; j<10; j++)
System.out.println("yiginin " +(j+1)+".elemanı :"+nesne1.dizi[j]);//dizimizin ilk 20 gözünü bize göster.
//simdi de yıgındaki tüm elemanları cıkaralım.
System.out.println("\nyigindan sirasiyla");
for (int k = 0; k<j; k++){//dongude j degeri 9dan geriye sayar eger oraya j yerine 9dan yuksek bir sayi yazarsak,
// döngü sonunda yigin bostur mesajı verecektir.
System.out.println(nesne1.yigindancikar()+" cikarildi.");//cikarilan her elemanı bize göster.
}
}
}
/*sonuc olarak biz sabit degerler kullanarak yıgının gözlerine ekleme, cıkarma ve bos mu yoksa dolumu oldugunu anlamak için 4 tane method yazdık.
bu program daha da geliştirilebilir.mesela yıgına eklenecek degerler komut satırından eklenebilir ya da buton ilave edilebilir.
alıntıdır
int i=-1;
int dizi[]=new int[10];
yigin(){
this.i=i;
}//yapılandırıcı method
int yiginbosmu(){
if(i==-1) System.out.println("yigin bostur.");//yigin bos mu degil mi kontrol et.
return -1;
}
int yigindolumu(){
if(i==10) System.out.println("yigin doludur.");//yigin dolu mu degil mi kontrol et.
return -1;
}
int yiginaekle(int deger){
yigindolumu();//yigindolumu methodunu cagırarak kontrol ettik.eger yıgın dolu degilse işlem yapabilecek.
++i;//i yi 1 artır,örneğin -1 ise 0 yap ve
dizi[i]=deger;//0.elemanın üzerine yeni degeri yaz.
return deger;
}
int yigindancikar(){
int deger;
int j;
yiginbosmu();//yıgın bos mu diye kontrol ettik ve eger bossa diger ifadelere gecmeden direk sonlanacak.
deger=dizi[i];
i--;
return deger;//i yi azalttık ve yıgınımızdan 1 eleman attık yani yıgınımızı 1 küçülttük(yani 15 ise 14 oldu).
}
}
class yigindeneme{
public static void main(String args[]){
yigin nesne1=new yigin();//"yigin" tipinde yeni bir nesne tanımladık.biliyoruz ki new komutu ile nesne tanımladıgımız zaman bize
// ismi bellegin stack bölgesinde,degiskenin kendisi ise bellegin heap bölgesinde tutulan bir degisken veriyordu.
//yigina istedigim sayilari ekledim.
nesne1.yiginaekle(1);
nesne1.yiginaekle(2);
nesne1.yiginaekle(3);//yıgına 3 sayısını ekle.
nesne1.yiginaekle(4);
nesne1.yiginaekle(10);
nesne1.yiginaekle(20);//yıgına 20 sayısını ekle.
nesne1.yiginaekle(30);
nesne1.yiginaekle(40);
nesne1.yiginaekle(100);
nesne1.yiginaekle(200);
int j=0;
//BURADA HERHANGİ BİR DONGU KULLANARAK YIGININ ELEMANLARINI DÖNGÜ İLE DE YAZDIRABİLİRİZ.BEN DAHA İYİ GÖRÜLMESİ İÇİN FARKLI DEGERLER KOYDUM.
for ( j = 0; j<10; j++)
System.out.println("yiginin " +(j+1)+".elemanı :"+nesne1.dizi[j]);//dizimizin ilk 20 gözünü bize göster.
//simdi de yıgındaki tüm elemanları cıkaralım.
System.out.println("\nyigindan sirasiyla");
for (int k = 0; k<j; k++){//dongude j degeri 9dan geriye sayar eger oraya j yerine 9dan yuksek bir sayi yazarsak,
// döngü sonunda yigin bostur mesajı verecektir.
System.out.println(nesne1.yigindancikar()+" cikarildi.");//cikarilan her elemanı bize göster.
}
}
}
/*sonuc olarak biz sabit degerler kullanarak yıgının gözlerine ekleme, cıkarma ve bos mu yoksa dolumu oldugunu anlamak için 4 tane method yazdık.
bu program daha da geliştirilebilir.mesela yıgına eklenecek degerler komut satırından eklenebilir ya da buton ilave edilebilir.
alıntıdır