Double Linked List dalam Bahasa C STRUKTUR DATA

 #include <stdio.h>

#include <stdlib.h>

/* 

Johannes Alexander Putra

*/

typedef struct element

{


    int angka;

    struct element * prev;

    struct element * next;


}element;

element * buatbarula(int angka)

{


    element * buatbaru = NULL;

    buatbaru = (element *)malloc(sizeof(element));

    buatbaru->angka  = angka;

    buatbaru->prev = NULL;

    buatbaru->next = NULL;


}

void adddepan(int angka,element ** listaku)

{


    element * buat = buatbarula(angka);

    buat->next = (*listaku);

    (*listaku)->prev = buat;

    (*listaku) = buat;

    buat = NULL;

}


void addtengah(int angka,element * listaku)

{


    element * buat = buatbarula(angka);

    element * temp = NULL;

    temp  = listaku;

    listaku = buat;

    while(temp->angka != 5)

    {


        temp = temp->next;

    }

    buat->prev = temp->prev;

    buat->next = temp;

    temp->prev->next = buat;

    temp->prev = buat;

    temp = NULL;


}

void akhir(int angka,element * listaku)

{


    element * buat = buatbarula(angka);

    element * temp = NULL;

    temp = listaku;

    while(temp->next != NULL)

    {


        temp = temp->next;

    }

    temp->next = buat;

    buat->prev  = temp;

    temp = NULL;

}

void printsemua(element * listaku)

{


    element * temp = listaku;

    do

    {


        printf("%d",temp->angka);

        temp = temp->next;


    }while(temp != NULL);

}

void deldepan(element ** listaku)

{

    if(listaku !=NULL)

    {

        element * hapus = (*listaku);

        (*listaku) = hapus->next;

        (*listaku)->prev = hapus;

        hapus->next = NULL;



    }

    else{

        printf("error");

    }


}

void deltengah(element * listaku)

{

    element * hapus;

    hapus = listaku;

    while(hapus->angka !=3)

    {


        hapus = hapus->next;


    }

    hapus->prev->next = hapus->next;


    free(hapus);


}

void delbelakang(element * listaku)

{

    element * hapus;

    hapus = listaku;

    while(hapus->next !=NULL)

    {


        hapus = hapus->next;


    }

    hapus->prev->next = NULL;

    free(hapus);


}

int main()

{


    element * tes = buatbarula(4);

    adddepan(1,&tes);

    akhir(5,tes);

    addtengah(3,tes);

    deldepan(&tes);

    delbelakang(tes);

    deltengah(tes);


    printsemua(tes);

}


Komentar

Postingan populer dari blog ini

Pentingnya Mendapatkan Sertifikasi di Bidang IT/Sebagai Programmer

Pengantar Java Swing Bagian 1

Pengenalan UML