Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me
Showing posts with label çift yönlü bağlı liste. Show all posts
Showing posts with label çift yönlü bağlı liste. Show all posts

Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü dağıtık sistemler ders notlarım.

Çift Yönlü Bağlı Liste

//2.Bölüm-Çift Yönlü Bağlı Listeler
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct ciftYonluEleman
{
int icerik;
struct ciftYonluEleman *ileri;
struct ciftYonluEleman *geri;
};

struct ciftYonluListe
{
struct ciftYonluEleman *bas;
struct ciftYonluEleman *son;
};

struct ciftYonluEleman *elemanOlustur(int icerik)
{
struct ciftYonluEleman *yeni;
yeni=(struct ciftYonluEleman *)malloc( sizeof(struct ciftYonluEleman) );
if(yeni==NULL)
{
printf("Hata...");
exit(1);
}
yeni->icerik=icerik;
yeni->geri=yeni->ileri=NULL;
return yeni;
}

void ciftYonluDiziBaslat(struct ciftYonluListe **liste)
{
*liste=(struct ciftYonluListe *)malloc( sizeof(struct ciftYonluListe) );
if(*liste==NULL)
{
printf("Hata...");
exit(1);
}
(*liste)->bas=(*liste)->son=NULL;
}

void liste_basina_ekle(int icerik,struct ciftYonluListe *liste)
{
struct ciftYonluEleman *yeni;
yeni=elemanOlustur(icerik);
if(liste->son==NULL)
{
liste->son=yeni;
}
else
{
liste->bas->geri=yeni;
yeni->ileri=liste->bas;
}
liste->bas=yeni;
}

void liste_sonuna_ekle(int icerik,struct ciftYonluListe *liste)
{
struct ciftYonluEleman *yeni;
yeni=elemanOlustur(icerik);
if(liste->bas==NULL)
liste->bas=yeni;
else
{
liste->son->ileri=yeni;
yeni->geri=liste->son;
}
liste->son=yeni;
}

void listeYazdir(struct ciftYonluListe *liste)
{
struct ciftYonluEleman *bas=liste->bas;
while(bas!=NULL)
{
printf("%4d",bas->icerik);
bas=bas->ileri;
}
printf("\n");
}

void listeSondanYazdir(struct ciftYonluListe *liste)
{
struct ciftYonluEleman *son=liste->son;
while(son!=NULL)
{
printf("%4d",son->icerik);
son=son->geri;
}
printf("\n");
}

int main()
{
struct ciftYonluListe *liste;
ciftYonluDiziBaslat(&liste);

liste_basina_ekle(10,liste);
liste_basina_ekle(15,liste);

liste_sonuna_ekle(32,liste);
liste_sonuna_ekle(45,liste);
listeYazdir(liste); //15 10 32 45
listeSondanYazdir(liste); //45 32 10 15

getch();
return 0;
}