![]() |
| Linked List |
Dalam dunia komputer, linked list secara ekstensif banyak digunakan di dalam sistem manajemen database, manajemen proses, sistem operasi, editor dan lain sebagainya.
Apabila anda menggunakan array untuk menempatkan beberapa buah stuktur sejenis ( Array of Structure ) di memori, maka Anda akan mengalokasikannya dengan cara yang statis.Artinya apabila Anda mendeklarasikan array tersebut dengan 20 buah elemen, maka ukuran memori yang akan dialokasikan di memori adalah 20 dikalikan ukuran struktur yang didefinisikan sebelumnya. Hal yang perlu ditekankan disini adalah apabila ternyata Anda hanya melakukan pengisian terhadap array tersebut sebanyak 5 elemen maka memori yang di alokasikan tetap untuk 10 buah elemen. Ini jelas merupakan pemborosan memori yang harus kita hindari dalam pembuatan program. Oleh karena itu, untuk membuat pekerjaan ini menjadi dinamis, para programer pada umumnya menggunakan linked list, sehingga pengalokasian memori dapat sesuai kebutuhan. Selain itu, dengan menggunakan cara ini kita juga dapat menambahkan atau menghapus elemen - elemen yang terdapat linked list tersebut.
Link list adalah sebuah rangkaian struktur sejenis (bertipe sama) yang dihubungkan dengan menggunakan salah satu (beberapa) field yang bertipe pointer. Untuk dapat memahaminya ,perhatikan pendefinisian struktur di bawah ini.
struct node{
int info;
struct node* next;
} node;
Di atas kita memiliki sebuah struktur dengan nama node, dimana di dalamnya terdapat dua buah field, yaitu info(bertipe int) dan next (bertipe pointer ke struktur node). Field info akan digunakan untuk menyimpan nilai, sedangkan pointer next digunakan untuk menyimpan alamat dari struktur node lainnya yang terdapat dalam rangkaian.
Untuk lebih jelas nya dibawah ini Author akan menjelaskan Linked List dengan menggunakan bahasa C.
disini kita akan membahas tentang :
- Print List
- Insert First
- Insert After
- Insert Last
- Delete First
- Delete After
- Delete Last
- Change First
- Change P
- Change Last
- Change All
- Search List
- Search Max
- Search Min
Print List yang akan kita bahas disini adalah sebuah Algoritma atau prosedur untuk menampilkan Node yang ada atau yang telah di insert User .
//Prosedur Print List void print_list(List* L) { if ( L->first != NULL ) { node* trav = L->first; while(trav != NULL) { printf("%d->", trav->info); trav = trav->next; } } }
2. Insert First
Insert First yang akan kita bahas disini adalah sebuah Algoritma atau prosedur untuk memasukan nilai pada node pertama .
//Prosedur Insert First
int insert_first(List* L , int info) { node* baru = malloc(sizeof(node)); baru->info = info; baru->next = NULL; if ( L->first == NULL ) { L->first = baru; } else { baru->next = L->first; L->first = baru; } }
3. Insert After
Insert First yang akan kita bahas disini adalah sebuah Algoritma atau prosedur untuk memasukan nilai ke node yang kita inginkan .
//Prosedur Insert After int insert_after(List* L , int info ,int after) { node* baru = malloc(sizeof(node)); baru->info = info; baru->next = NULL; if ( L->first == NULL ) { L->first = baru; } node* trav = L->first; while(trav->next != NULL && trav->info != after) { trav = trav->next; } baru->next = trav->next; trav->next = baru; }
4. Insert Last
Insert First yang akan kita bahas disini adalah sebuah Algoritma atau prosedur untuk memasukan nilai pada node terakhir .
//Prosedur Insert Last int insert_last(List* L , int info) { node* baru = malloc(sizeof(node)); baru->info = info; baru->next = NULL; if ( L->first == NULL ) { L->first = baru; } node* trav = L->first; while(trav->next != NULL) { trav = trav->next; } trav->next = baru; }
Mungkin sekian sharing singkat dari Author selanjut nya akan di bahas di artikel selanjut nya.

1 comments :
Write commentskoding searchnya mana gan??
ReplyEmoticon Emoticon