Wednesday, November 7, 2012

Hai guys,,,,
Bertemu lagi dengan saya Dhimas Pristia,,,
Kali ini saya akan memberikan sebuah totorial tentang Linked List dengan Bahasa C,,

Apa sih Linked List itu??
Linked list adalah struktur data berupa deret data yang dinamis, karena dapat ditambahkan
ataupun dihapus. Lebih rinci lagi:
a. linked list terdiri dari rantai node/ simpul dimana tiap node terdiri dari data, pointer
yang merujuk data node-nya sendiri dan pointer merujuk pada node yang
mengikutinya.
b. Linked list memilki head/ kepala (node awal) dan tail/ekor (node akhir). Karena tail
adalah node akhir, dengan demikian, dalam node tail, pointer yang merujuk pada node
selanjutnya adalah samadengan NULL.
c. Jika linked list hanya terdiri dari satu node, maka, dalam node tersebut, pointer yang
merujuk pada node selanjutnya adalah samadengan NULL.

Untuk lebih jelas langsung saja lihat videonya :


Berikut Scriptnya :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct simpul {
    char nama[20];
    float nilai;
    struct simpul *next_simpul;
    } simpulku;
void main()
{
simpulku *simpul1, *simpul2, *simpul3, *simpul4, *temp;
//alokasikan memorinya dulu
simpul1 = (simpulku *)malloc(sizeof(simpulku));
simpul2 = (simpulku *)malloc(sizeof(simpulku));
simpul3 = (simpulku *)malloc(sizeof(simpulku));
//isi data masing2 simpul
strcpy(simpul1->nama, "Amin");
strcpy(simpul2->nama, "Budi");
strcpy(simpul3->nama, "Citra");
simpul1->nilai=90;
simpul2->nilai=20;
simpul3->nilai=100;
simpul1->next_simpul = NULL;
//sambungkan link masing2 simpul
simpul1->next_simpul = simpul2;
simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL;
//tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
printf("\n");
/*
//cara looping
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul)
printf("%s, %f\n", temp->nama, temp->nilai);*/
//skenario menambahkan simpul baru
simpul4 = (simpulku *)malloc(sizeof(simpulku)); //siapkan
strcpy(simpul4->nama, "Dewi");simpul4->nilai=80; //isi
simpul2->next_simpul = simpul4; //update link
simpul4->next_simpul = simpul3;
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//menghapus simpul budi
simpul1->next_simpul = simpul4; //update link
free(simpul2); //hapus simpul
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
system("pause");
return 0;
}

No comments:

Post a Comment