Operasi-Operasi yang ada pada Linked List :
– Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
– IsEmpty
Fungsi ini menentukan apakah linked list kosong atau tidak.
– Find First
Fungsi ini mencari elemen pertama dari linked list
– Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now
– Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
– Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
– Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalahelemen pertama dari linked list (head), head akan berpindah ke elemen berikut.
– Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.
– Clear
Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya, data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal di dalam memori.
3. Beberapa Jenis yang operasi yang terdapat didalamnya
a. Insert
Istilah insert berarti menambahkan sebuah simpul baru kedalam suatu Linked List.
b. Isempty
Fungsi ini menentukan apakah Linked List kosong atau tidak.
c. Find First
Fungsi ini mencari elemen pertama pada Linked List.
d. Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now.
e. Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
f. Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
g. Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah elemen pertama dari Linked List (head), head akan berpindah pada elemen berikut.
h. Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.
4. Algoritma dan Contoh program untuk operasi didalamnya.
CONTOH PROGRAM :
#include <stdio.h>
#include <stdlib.h>
struct NODE {
int number;
struct NODE *next;
};
void append_node(struct NODE *llist, int num);
int search_value(struct NODE *llist, int num);
void display_list(struct NODE *llist);
int main(void) {
int num = 0;
int input = 5;
int retval = 0;
struct NODE *llist;
llist = (struct NODE *)malloc(sizeof(struct NODE));
llist->number = 0;
llist->next = NULL;
while(input != 0) {
printf("\n===== Pilih Menu =====\n");
printf("0: Keluar\n");
printf("1: Insert\n");
printf("2: Search\n");
printf("3: Tampilkan\n");
printf("\nPilihan: ");scanf("%d", &input);
if(input==0){
printf("...Terimakasih...\n");
}
else if(input==1){
printf("Anda Memilih: 'Insert'\n");
printf("Masukkan Nilai Yang Akan di Insert: ");
scanf("%d", &num);
append_node(llist, num);
}
else if(input==2){
printf("Anda Memilih: 'Search'\n");
printf("Masukkan Nilai Yang Akan di Cari (Search): ");
scanf("%d", &num);
if((retval = search_value(llist, num)) == -1)
printf("Value `%d' not found\n", num);
else
printf("Value `%d' located at position `%d'\n", num, retval);
}
else if(input==3){
printf("Anda Memilih: 'Tampilkan'\n");
display_list(llist);
}}
free(llist);
return(0);
}
void append_node(struct NODE *llist, int num) {
while(llist->next != NULL)
llist = llist->next;
llist->next = (struct NODE *)malloc(sizeof(struct NODE));
llist->next->number = num;
llist->next->next = NULL;
}
int search_value(struct NODE *llist, int num) {
int retval = -1;
int i = 1;
while(llist->next != NULL) {
if(llist->next->number == num)
return i;
else
i++;
llist = llist->next;
}
return retval;
}
void display_list(struct NODE *llist) {
while(llist->next != NULL) {
printf("%d ", llist->number);
llist = llist->next;
}
printf("%d", llist->number);
}
SUMBER :