//ç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:
teşekkr ederimm..çok açık bi şekilde yapmışsın
Yorum Gönder