Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

LINKED LIST. Linked List (Daftar Berantai)  Adalah struktur data yang terdiri dari rangkaian node yang setiap node terkait/terhubung dengan node selanjutnya.

Presentasi serupa


Presentasi berjudul: "LINKED LIST. Linked List (Daftar Berantai)  Adalah struktur data yang terdiri dari rangkaian node yang setiap node terkait/terhubung dengan node selanjutnya."— Transcript presentasi:

1 LINKED LIST

2 Linked List (Daftar Berantai)  Adalah struktur data yang terdiri dari rangkaian node yang setiap node terkait/terhubung dengan node selanjutnya  Strukturnya sama dengan array yaitu tersusun dari banyak elemen dan bersambung

3 Array dan Linked List HEAD TAIL Setiap node pada LL terdiri atas 2 bagian, yaitu : 1.Data 2.Penunjuk node selanjutnya

4 Macam LL  Single LL setiap node hanya menunjuk node selanjutnya (hanya memiliki satu variabel pointer)  Double LL setiap node dapat menunjuk node sebelum dan setelah (memiliki 2 variabel pointer)

5 Singly-Linked List (1) NIL (end of list) (a): basic linked list. Variabel head digunakan untuk melacak/ menandai list (b): Menambahkan variabel tail pada list untuk memudahkan pengaksesan elemen terakhir pada list

6 Singly-Linked List (2) (d): Circular linked list dengan hanya menggunakan variabel tail untuk menandai elemen terakhir pada list. Elemen pertama adalah 1 elemen setelah elemen terakhir. (c): Menambahkan elemen ekstra pada list, sentinel, yang tidak digunakan untuk menyimpan data. Keuntungan: tidak perlu memodifikasi variabel head jika ada perubahan pada list. List (c) juga merupakan circular linked list

7 Representasi memory dari linked list (variasi nomor b)

8 Buat class Elemen/Node  Class ini digunakan untuk membuat objek/instance setiap node. Setiap node minimal terdiri dari 1 variabel penyimpan data dan 1 variabel penunjuk node berikutnya. class Node attr_accessor :data, :pnext nil end

9 Class LinkedList class SingleLinkedList attr_accessor :head, :tail class Node attr_accessor :data, :pnext nil end def nil end

10 Algoritma Pengecekan Linked List Kosong  Dilakukan untuk mengetahui apakah Linked List dalam kondisi kosong (tidak memiliki node)  Jika HEAD dan TAIL bernilai NIL maka Linked List kosong, return TRUE  Sebaliknya return FALSE

11 Kode Pengecekan Linked List kosong def isEmpty nil return true else return false end

12 Algoritma Menambah Node pada Linked List  Buat node BARU  Isi info dengan nilai dan pnext=NULL  Jika Linked List kosong (belum memiliki node) maka jadikan node BARU sebagai HEAD dan TAIL  Tetapi jika Linked List tidak kosong maka  Sambungkan TAIL ke node BARU  Ubah node BARU sebagai TAIL

13 Code menambah Node def append(data) # method untuk menambah Node baru=Node.new(nilai)# membuat objek node BARU if isEmpty # cek apakah Linked List node BARU sebagai node BARU sebagai TAIL else # jika Linked List tidak sambungkan TAIL dengan jadikan node BARU sebagai TAIL end

14 Algoritma menampilkan isi Linked List  Buat sebuah node TEMP  Node TEMP menunjuk alamat yang sama dengan node HEAD  Selama temp!=NULL,  tampilkan isi node  Update TEMP menjadi node berikutnya

15 Code view Linked List def view while temp!= nil puts temp.data temp=temp.pnext end

16 Code main require_relative "SingleLinkedList" myList=SingleLinkedList.new myList.append("Amin") myList.append("Budi") myList.append("Citra") myList.view

17 Tugas 1 1. Gambarkan ilustrasi untuk menambah node diawal Linked List (prepend). Catat langkah-langkah yang harus dilakukan. 2. Gambarkan ilustrasi untuk mencari nilai data tertentu pada Linked List. Catat langkah- langkah yang harus dilakukan. 3. Gambarkan ilustrasi untuk menghapus node dengan nilai data tertentu pada Linked List. Catat langkah-langkah yang harus dilakukan.


Download ppt "LINKED LIST. Linked List (Daftar Berantai)  Adalah struktur data yang terdiri dari rangkaian node yang setiap node terkait/terhubung dengan node selanjutnya."

Presentasi serupa


Iklan oleh Google