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[i]=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 void 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.
Javada FIFO Stack(KUYRUK) Yapısı Acıklamalı Örnek
Javada FIFO Stack(KUYRUK) Yapısı Acıklamalı Örnek
Konuyu Okuyanlar: 1 Ziyaretçi
![[Resim: 114ld.jpg]](http://b1112.hizliresim.com/s/c/114ld.jpg)