31 Aralık 2009 Perşembe

çevrimsel dairesel kuyruk kodu

veri yapıları dersi için kitabın da yardımla menü tabanlı dairesel kuyruk oluşturdum
//çevrimsel dairesel kuyruk struct yapısıyla oluşturuluyor
#include

#include

#include

#define n 10

typedef struct kuyrukyapisi{

int bas;//ilk elemanı tutan işaretçi

int son;//son elemanı tutan işaretçi

int var;//eleman sayısı

int d[n];



} kuyruk;

int veri;

int ekle(),cikart(),listele(),say();

kuyruk *KUYRUK;

int p;

void baslangic(kuyruk *k){

k->var=0;

k->bas=0;

k->son=0;

}

int main(int argc, char *argv[])

{



int eklenecek_sayi,eleman;

char secim;

while(1)

{

printf("\nekleme:'e'\nlisteleme:'l'\nsilme:'s'\ncıkıs:'c C'\nsaymak 'S'\nseciminiz:");

secim=getchar();

switch(secim)

{

case 'e': printf("eklemek istediğiniz sayıyı giriniz:");

scanf("%d",&eklenecek_sayi);

ekle(eklenecek_sayi,&KUYRUK);

break;

case 's':

cikart(&KUYRUK);

break;

case 'l':

listele(&KUYRUK);

break;

case 'c':

exit(0);

break;

case 'S':

say(&KUYRUK);

break;

default:

puts("yanlıs secim!!!!");

}

}

}

int say(kuyruk *k)

{

p=k->var;



printf("eleman sayisi:%d",p);



}

int listele(kuyruk *s)

{ s->bas=0;//bas hersefreinde 0 olmalı ki her defasında ilk elemndan başlayarak yazdırsın

if(s->bas==s->son)

puts("liste bos!!!!!");

else{



while((s->bas)!=(s->son))

{

s->bas=((s->bas)+1)%n;

printf("elamanlar-----%d\n--- ",s->d[(s->bas)]);

}

}





}

int cikart(kuyruk *k){

if(k->var <=0)

{ puts("kuyruk boş");

return 0;

}

else

{ k->bas=((k->bas)+1)%n;

(k->var)--;

puts("eleman silindi");

}

}





int ekle(int eklenecek,kuyruk *k)



{

if((k->var)>(n-1))

{

puts("bellek dolu!!!");

return 0;

}

else{

(k->son)=((k->son)+1)%n;

(k->d[k->son])=eklenecek;

(k->var)++;

return eklenecek;

}

}

2 yorum:

Adsız dedi ki...

teşekkr ederimm..çok açık bi şekilde yapmışsın

TasneemNH dedi ki...
Bu yorum yazar tarafından silindi.
 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri