🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Zeynep HABER / VERİYAPILARI / ÇİFT YÖNLÜ BAĞLI LİSTE

1-) VERİYAPILARI - ÇİFT YÖNLÜ BAĞLI LİSTE

# include<stdio.h>

# include<stdlib.h>

typedef struct liste

{

int numara;

struct liste *sonraki;

struct liste *onceki;

}

Bliste;

Bliste* ilk = NULL,*son=NULL;

//BAĞLI LİSTEYE VERİYİ EKLEME

void ekle(int deger)

{

Bliste* bilgi = (Bliste*)malloc(sizeof(Bliste)); // bellekte yer ayrıldı

bilgi->numara = deger;

bilgi->sonraki = NULL;

bilgi->onceki = NULL;

if (ilk == NULL)

{

ilk = bilgi;

son = bilgi;

}

else

{

son->sonraki = bilgi;

bilgi->onceki = son;

son = bilgi;

}

}

// BAĞLI LİSTEDEN VERİ ARAMA

int Arama(int aranacakSayi)

{

Bliste* gecici;

gecici = ilk;

while (gecici != NULL)

{

if (gecici->numara == aranacakSayi) return gecici->numara;

else gecici = gecici->sonraki;

 

}

return 0;

}

//LİSTELEME

void Listele()

{

Bliste* gecici;

for (gecici = ilk; gecici != NULL; gecici = gecici->sonraki)

{

printf("%d\n", gecici->numara);

}

}

//SİLME

void Sil(int silinecekSayi)

{

Bliste* gecici,*onceki;

gecici = ilk;

onceki = ilk;

if (ilk->numara == silinecekSayi)

{

ilk = ilk->sonraki;

ilk->onceki = NULL;

return;

}

while (gecici->numara != silinecekSayi && gecici->sonraki != NULL)

{

gecici = gecici->sonraki;

}

if (gecici->numara == silinecekSayi)

{

if (gecici->sonraki == NULL)

{

gecici->onceki->sonraki = NULL;

}

else

{

gecici->onceki->sonraki = gecici->sonraki;

gecici->sonraki->onceki = gecici->onceki;

}

}

else

{

printf("eleman yok");

}

}

int main()

{

int dizi[] = { 5, 4, 1, 3, 9 };

for (int i = 0; i < 5; i++)

{

ekle(dizi[i]);

}

printf("EKLEME SONRASI LISTELEME\n");

Listele();

//////////////////////

Sil(1); //aradan değer silindi

Sil(5);// en baştaki değer silindi

Sil(9);//en sondaki değer silindi

printf("SILME SONRASI LISTELEME\n");

Listele();

return 0;

}

 2022 Mart 08 Salı
 426