Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

LINKED LIST.

Presentasi serupa


Presentasi berjudul: "LINKED LIST."— 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 1 2 3 1 2 3 TAIL HEAD Setiap node pada LL terdiri atas 2 bagian, yaitu : Data 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) (a): basic linked list. Variabel head digunakan untuk melacak/ menandai list NIL (end of list) (b): Menambahkan variabel tail pada list untuk memudahkan pengaksesan elemen terakhir pada list

6 Singly-Linked List (2) (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 (d): Circular linked list dengan hanya menggunakan variabel tail untuk menandai elemen terakhir pada list. Elemen pertama adalah 1 elemen setelah elemen terakhir.

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 def initialize(nilai) @data=nilai @pnext=nil end

9 Class LinkedList class SingleLinkedList attr_accessor :head, :tail
class Node attr_accessor :data, :pnext def initialize(nilai) @data=nilai @pnext=nil end def initialize @head=nil @tail=nil

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 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 Gambarkan ilustrasi untuk menambah node diawal Linked List (prepend). Catat langkah-langkah yang harus dilakukan. Gambarkan ilustrasi untuk mencari nilai data tertentu pada Linked List. Catat langkah-langkah yang harus dilakukan. Gambarkan ilustrasi untuk menghapus node dengan nilai data tertentu pada Linked List. Catat langkah-langkah yang harus dilakukan.


Download ppt "LINKED LIST."

Presentasi serupa


Iklan oleh Google