LINK LIST
/*Yonergeleer*/
void Yonergeler(void)
{
printf("Lutfen Seceneginizi Girin: \n"
" 1 Bir eleman eklemek icin.\n"
" 2 Bir eleman silmek icin.\n"
" 3 Programdan cikmak icin.\n");
}
/*listeye sirali bir sekilde deger ekleme*/
void Ekle(LISTNODEPTR *s, char deger)
{
LISTNODEPTR yeni, onceki, suAn;
yeni = malloc(sizeof(LISTNODE));
if(yeni != NULL) /*yer ayrilmis mi ? */
yeni->data = deger;
yeni->sonraki =*s;
onceki = NULL;
suAn = *s;
while(suAn != NULL && deger > suAn->data)
{
onceki = suAn;
suAn = suAn->sonraki;
}
if(onceki == NULL)
{
yeni->sonraki = *s;
*s = yeni;
}
else
{
onceki->sonraki = yeni;
yeni->sonraki = suAn;
}
}
else
printf("%c eklenmedi. Hafiza yetersiz.\n", deger);
}
/* Deger Silme*/
char Sil(LISTNODEPTR *s, char deger)
{
LISTNODEPTR onceki, suAn, hedef;
if(deger = = (*s)->data)
{
hedef = *s;
*s = (*s)->sonraki;
free(hedef);
return(deger);
}
else
{
onceki =
*s;
suAn
= (*s)->next;
while(suAn
!= NULL && suAn->data != deger)
{
onceki = suAn;
suAn = suAn->sonraki;
}
if(suAn !=
NULL)
{
hedef = suAn;
onceki->sonraki = suAn->sonraki;
free(hedef);
return(deger);
}
}
return('\0');
}
/*Liste kontrol*/
int Bos(LISTNODEPTR s)
{
return s = = NULL;
}
/*En son durumda ki listeyi yaz*/
void ListeYaz(LISTNODEPTR suAn)
{
if(suAn = = NULL)
printf("Liste su an BOS.\n\n");
else
{
printf("Liste
:\n");
while(suAn != NULL)
{
printf("%c
- -> ", suAn->data);
suAn = suAn->sonraki;
}
printf("NULL\n\n);
}
}
|