LINKED LIST
(Senarai Berantai)
(a)
Langkah
penghapusan
1. Pointer first
diarahkan data
ke-2
2. Pointer p
diarahkan pada
data ke-1
3. Bebaskan
pointer p
(secara otomatis
data ke-1
terhapus)
(b)
(c)
free(llist);
return(0);
}
Lanjutan Contoh Program 1:
void append_node(struct NODE *llist, llist = llist->next;
int num) { }
while(llist->next != NULL)
llist = llist->next; return retval;
}
llist->next = (struct NODE
*)malloc(sizeof(struct NODE)); void display_list(struct NODE *llist) {
llist->next->number = num; while(llist->next != NULL) {
llist->next->next = NULL; printf("%d ", llist->number);
} llist = llist->next;
}
int search_value(struct NODE *llist, int
num) { printf("%d", llist->number);
int retval = -1; }
int i = 1;
while(llist->next != NULL) {
if(llist->next->number == num)
return i;
else
i++;
Hasil Program 1
Contoh Program 2 :
#include <stdio.h> void main()
#include <stdlib.h> {
//Deklarasi pointer dari simpulku spasi nama variabel
typedef struct simpul { /*Deklarasi
simpulku *simpul1, *simpul2, *simpul3, *simpul4,
struktur dengan nama simpul yang *temp;
mempunyai anggota dengan
berbagai tipe data //alokasikan memorinya terlebih dahulu
berikut */ simpul1 = (simpulku *)malloc(sizeof(simpulku));
/*pengalokasian alamat memori ke dalam variabel
char nama[20]; /*Deklarasi variabel simpul1*/
simpul2 = (simpulku
nama bertipe char
*)malloc(sizeof(simpulku));/*pengalokasian alamat
dengan batas karakter 20 */ memori ke dalam variabel simpul2*/
float nilai; /*Deklarasi variabel nilai simpul3 = (simpulku
bertipe float */ *)malloc(sizeof(simpulku));/*pengalokasian alamat
struct simpul *next_simpul; /*Deklarasi memori ke dalam variabel simpul3*/
struktur simpul dengan
pointer simpul berikutnya sebagai node
*/
} simpulku; //Nama variabel simpulku
Lanjutan Contoh Program 2 :
//isi data masing2 simpul //sambungkan link masing2 simpul
strcpy(simpul1->nama, "Amin");
simpul1->next_simpul = simpul2; /* membuat node
/*mengcopy variabel nama string
(penghubung) dari simpul */
"Amin" ke variabel simpul 1*/ simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL; /*Null artinya setelah simpul3
strcpy(simpul2->nama, tidak ada lagi simpul penghubung (node) */
"Budi");/*mengcopy variabel nama
string"Budi" ke variabel simpul 2*/ //tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
strcpy(simpul3->nama,
printf("%s, %f\n", temp->nama, temp->nilai);
"Citra");/*mengcopy variabel nama string /*temp->nama adalah "Amin" , temp->nilai adalah 90 */
"Citra" ke variabel simpul 3*/ temp = temp->next_simpul; //node (penghubung)
system("pause");
return 0;
}
Hasil Program 2
Sumber
• Wayan Suparta, PhD. Universitas Pembangunan Jaya.
“INF202: Struktur Data”
• Admin. “Linked List Dalam Bahasa C”. 2015.
“https://www.markijar.com/2015/05/linked-list-dalam-
bahasa-c.html”
Terima Kasih