Programdaki kodlar fifo(kuyruk) stack yapısını ayrıntılı bir sekilde acıklıyor.
class kuyruk{
int i=-1;
int dizi[]=new int[20];
int kuyrukbosmu(){
if(i==-1) System.out.println("\nkuyruk bostur.\n"); //kuyruk bos mu degil mi kontrol et.
return -1;
}
int kuyrukdolumu(){
if(i==9) System.out.println("kuyruk doludur.");//kuyruk dolu mu degil mi kontrol et.
return -1;
}
int kuyrugaekle(int deger){
kuyrukdolumu();//kuyrukdolumu methodunu cagırarak kontrol ettik.eger kuyruk dolu degilse işlem yapabilecek.
i++; //i yi 1 artır,örneğin -1 ise 0 yap ve
dizi=deger;//0.elemanın üzerine yeni degeri yaz.
return deger;
}
int kuyruktancikar(){
kuyrukbosmu();//kuyruk bos mu diye kontrol ettik ve eger bossa diger ifadelere gecmeden direk sonlanacak.
int index=0;//index diye bir deger tanımladık.bu deger her zaman kuyrugun ilk elemanını tutacak.
int j;//daha sonra döngü için j tanımladık.
int deger=dizi[index];
for (j=1; j<11; j++){
dizi[j-1]=dizi[j];
}
i--;
return deger;
//kuyrukta her zaman ilk elemandan itibaren alacagı için elemanları her seferinde 1 kaydırdık.yani 1. eleman cıkınca 2. eleman 1.nin yerine,
//3. eleman, 2.nin yerine vs. ve en sonunda i yi 1 azaltarak dizimizin her seferinde 1 göz küçülmesini sagladık.
}
}
class kuyrukdeneme{
public static **** main(String args[]){
kuyruk nesne1=new kuyruk();//"kuyruk" 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.
//kuyruga istedigim sayilari ekledim.
nesne1.kuyrugaekle(1);
nesne1.kuyrugaekle(2);
nesne1.kuyrugaekle(3);
nesne1.kuyrugaekle(4);
nesne1.kuyrugaekle(10);
nesne1.kuyrugaekle(20);
nesne1.kuyrugaekle(30);
nesne1.kuyrugaekle(40);
nesne1.kuyrugaekle(100);
nesne1.kuyrugaekle(200);
//BURADA HERHANGİ BİR DONGU KULLANARAK KUYRUGUN ELEMANLARINI DÖNGÜ İLE DE YAZDIRABİLİRİZ.BEN DAHA İYİ GÖRÜLMESİ İÇİN FARKLI DEGERLER KOYDUM.
for (int j = 0; j<10; j++)
System.out.println("kuyrugun " +(j+1)+".elemanı :"+nesne1.dizi[j]);//dizimizin ilk 20 gözünü bize göster.
//simdi de kuyruktakiki tüm elemanları cıkaralım.
System.out.println("\nkuyruktan sirasiyla");
for (int k =0; k<10; k++){
System.out.println(nesne1.kuyruktancikar()+" cikarildi.");//cikarilan her elemanı bize göster.
}
}
}
/*sonuc olarak biz sabit degerler kullanarak kuyrugun 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 kuyruga eklenecek degerler komut satırından eklenebilir ya da buton ilave edilebilir.
umarım ihtiyacı olanlara yardımcı olmusumdur... */
class kuyruk{
int i=-1;
int dizi[]=new int[20];
int kuyrukbosmu(){
if(i==-1) System.out.println("\nkuyruk bostur.\n"); //kuyruk bos mu degil mi kontrol et.
return -1;
}
int kuyrukdolumu(){
if(i==9) System.out.println("kuyruk doludur.");//kuyruk dolu mu degil mi kontrol et.
return -1;
}
int kuyrugaekle(int deger){
kuyrukdolumu();//kuyrukdolumu methodunu cagırarak kontrol ettik.eger kuyruk dolu degilse işlem yapabilecek.
i++; //i yi 1 artır,örneğin -1 ise 0 yap ve
dizi=deger;//0.elemanın üzerine yeni degeri yaz.
return deger;
}
int kuyruktancikar(){
kuyrukbosmu();//kuyruk bos mu diye kontrol ettik ve eger bossa diger ifadelere gecmeden direk sonlanacak.
int index=0;//index diye bir deger tanımladık.bu deger her zaman kuyrugun ilk elemanını tutacak.
int j;//daha sonra döngü için j tanımladık.
int deger=dizi[index];
for (j=1; j<11; j++){
dizi[j-1]=dizi[j];
}
i--;
return deger;
//kuyrukta her zaman ilk elemandan itibaren alacagı için elemanları her seferinde 1 kaydırdık.yani 1. eleman cıkınca 2. eleman 1.nin yerine,
//3. eleman, 2.nin yerine vs. ve en sonunda i yi 1 azaltarak dizimizin her seferinde 1 göz küçülmesini sagladık.
}
}
class kuyrukdeneme{
public static **** main(String args[]){
kuyruk nesne1=new kuyruk();//"kuyruk" 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.
//kuyruga istedigim sayilari ekledim.
nesne1.kuyrugaekle(1);
nesne1.kuyrugaekle(2);
nesne1.kuyrugaekle(3);
nesne1.kuyrugaekle(4);
nesne1.kuyrugaekle(10);
nesne1.kuyrugaekle(20);
nesne1.kuyrugaekle(30);
nesne1.kuyrugaekle(40);
nesne1.kuyrugaekle(100);
nesne1.kuyrugaekle(200);
//BURADA HERHANGİ BİR DONGU KULLANARAK KUYRUGUN ELEMANLARINI DÖNGÜ İLE DE YAZDIRABİLİRİZ.BEN DAHA İYİ GÖRÜLMESİ İÇİN FARKLI DEGERLER KOYDUM.
for (int j = 0; j<10; j++)
System.out.println("kuyrugun " +(j+1)+".elemanı :"+nesne1.dizi[j]);//dizimizin ilk 20 gözünü bize göster.
//simdi de kuyruktakiki tüm elemanları cıkaralım.
System.out.println("\nkuyruktan sirasiyla");
for (int k =0; k<10; k++){
System.out.println(nesne1.kuyruktancikar()+" cikarildi.");//cikarilan her elemanı bize göster.
}
}
}
/*sonuc olarak biz sabit degerler kullanarak kuyrugun 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 kuyruga eklenecek degerler komut satırından eklenebilir ya da buton ilave edilebilir.
umarım ihtiyacı olanlara yardımcı olmusumdur... */