260 likes | 578 Views
LINKED LIST (List linier). Definisi. Linked list adalah sekumpulan komponen yangsaling berhubungan (berantai) secara berurutan dengan bantuan pointer. Link. data. data. data. Null. Simpul / node. Linked list terdiri dari 2 komponen:
E N D
Definisi • Linked list adalah sekumpulan komponen yangsaling berhubungan (berantai) secara berurutan dengan bantuan pointer Link data data data Null Simpul / node
Linked list terdiri dari 2 komponen: • data : satu atau lebih field yang yang berisi data di linked list. • Link : satu pointer yang menunjuk ke data berikutnya. Link data Simpul / node
Deklarasi Link list struct node { int info; struct node *nextPtr; } Link info nextptr node
Ilustrasi menyambung node a dgn b: Link • //deklarasi Link ListNode *a;Node *nextptr;a = new Node; • //pendeklarasian dengan menggunakan keyword new//menyambung link listInt data ;a -> data = 1;a->nextptr = NULL; data nextptr New node 1 Null Node a
//pendeklarasian node bNode * b;b->data = 2;b->nextptr = NULL; 2 Null Node b
//menyambung node a dan node ba->nextptr = b; Link Link 1 nextptr 2 null Node a Node b
Operasi-Operasi Linked List • Buat List • Tambah node(simpul) • Hapus node(simpul) • Cari node(simpul) • Melacak list (Membaca node-node)
Membuat linked list • Syarat dalam membuat linked list: Harus mempunyai ujung awal dari simpul dan ujung akhir. • Ujung awal, untuk mengetahui awal dari simpul. • Ujung akhir untuk mengetahui sampai dimana linked list berakhir awal Link data data data Null akhir Simpul
Tambah Node/Simpul • Fungsi menambah simpul di belakang. Langkah-langkahnya: • membuat simpul baru kemudian diisi info baru. • simpul paling akhir dihubungkan ke simpul baru. • penunjuk pointer akhir diarahkan ke simpul simpul baru.
Ilustrasi menambah simpul baru pointer awal akhir Baru D A C N I. awal akhir Baru D A C N II. awal akhir Baru D A C N III.
Procedure menambah simpul void tambahnode(NODPTR *s, NODPTR t, NODPTR p) { if (p==NULL) { t -> next = *s; *s = t; } else { t -> next = p -> next; p ->next = t; } }
Membaca isi Simpul • Pertama kali kita atur supaya pointer bantu menunjuk ke pointer awal. • Setelah isi simpul terbaca, pointer bantu kita garakkan ke kanan untuk membaca simpul berikut. • Proses ini kita ulangi sampai pointer bantu berimpitan dengan pointer akhir
Ilustrasi membaca simpul Bantu awal akhir AA A B C I.
Procedure membaca simpul Procedure baca; Var Bantu : simpul; Begin Bantu :=Awal; Repeat write(Bantu^.info); Bantu :=Bantu^.Berikut; Until Bantu :=nil; End;
Cara menghapus • Pertama kali kita letakkan pointer bantu di sebelah kiri simpul yang dihapus (Gb.I) • Simpul yang dihapus kita tunjuk dengan simpul lain misal: hapus. (Gb.I) • Pinter pada simpul bantu , kita arahkan pada simpul yang ditunjuk oleh pointer hapus( Gb. II) • Simpul yang ditunjuk oleh pointer hapus kita dispose(Gb. III)
Ilustrasi awal Bantu akhir Hapus D A B C D Gb. I awal Bantu akhir Hapus D A B C D Gb.II Dispose awal Bantu akhir D A C D Gb.III
Procedure Hapus_Tengah(Var L : Pointer; X : Integer); Var Bantu,Hapus : Pointer; Begin Bantu := L; New(Hapus); While Bantu^.Berikutnya <> nil Do Begin if Bantu^.Berikutnya^.nilai = X then begin Hapus:=Bantu^.Berikutnya; Bantu^.Berikutnya:=Hapus^.Berikutnya; dispose(Hapus); End;