Javada FIFO Stack(KUYRUK) Yapısı Acıklamalı Örnek

Asi-Kral

Katılımcı Üye
29 May 2008
768
9
TURKHACKTEAM
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... */
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.