Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
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.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.