Single Linked List.

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
LINKED LIST.
CARA MEMBUAT SINGLE LINKED LIST DENGAN BORLAND C++
LINKED LIST (List linier)
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Double Linked List. © 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Double Linked List Sama seperti single linked list, double.
Queue.
STACK.
Queue.
Queue.
STRUKTUR DATA (6) single linked list non circular
Single Linked List Yuliana Setiowati, S.Kom.
Queue.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Struktur Data List Linear : Linked List (Double Linkedlist)
Linear Data Structures (Linked List). Node Link atau pointer data field.
Algoritma dan Struktur Data
Implementasi ADT: Linked - List
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
Linear List.
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Struktur Data (Data Structure) – IS 2313
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Algoritma dan Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
LINK LIST “Suatu cara menyimpan data dengan terstruktur sehingga programmer dapat secara otomatis menciptakan suatu tempat baru didalam memori komputer.
ADT DINAMIS : SINGLY LINKED LIST DAN DOUBLE LINKED LIST
Double Linked List.
Double linked list non circular
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List
Tim struktur data IF UNIKOM
8. Singly Linear Linked List
Single Linked List.
12. Doubly Linear Linked List
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
11. Singly Circular Linked List
Linked List.
Linked List Eko Riyanto.
MATAKULIAH : STRUKTUR DATA
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
Stack.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Algoritme dan Stuktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
Tim struktur data IF UNIKOM
Single Linked List Circular (SLLC)
STRUKTUR DATA (8.2) double linked list circular
Tim struktur data IF UNIKOM
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
LINKED LIST MELINGKAR Linked List melingkar (circular) adalah linked list linier biasa dimana pointer pada node terakhir diarahkan kembali ke node pertama.
SINGLE Linked List (lanjutan)
Tim struktur data IF UNIKOM
Algoritma dan Struktur Data
Transcript presentasi:

Single Linked List

Single Linked List Single linked list atau linked list Tiap elemen terdiri dari dua bagian, yaitu sebuah data dan sebuah pointer/link yang disebut dengan link next.

Single Linked List Linked list terpencar-pencar di memori Link dari elemen ke elemen berarti sebagai penjamin bahwa semua elemen dapat diakses.

Single Linked List Single Linked List tidak bisa diakses secara langsung. Dapat diakses secara sequential dengan mengakses maju satu persatu node.

Pembuatan Single Linked List Sebuah node pada linked list mempunyai dua instance variabel : nodeValue dengan tipe generics T. next dengan tipe Node yang merupakan link ke node berikutnya.

Pembuatan Single Linked List Class Node Class Node memiliki dua constructor yaitu: Default constructor : menginisialisasi variabel nodeValue dan next dengan null Constructor dengan parameter : memberikan nilai pada variabel nodeValue dan memberikan nilai pada variabel next dengan null.

Pembuatan Single Linked List Class Node public class Node<T> { // variabel node untuk menyimpan data public T nodeValue; // link node untuk menghubungkan ke node berikutnya public Node<T> next; // default constructor public Node() nodeValue = null; next = null; }

Pembuatan Single Linked List Class Node // menginisialisasi nodeValue dengan item //dan memberikan nilai next dengan null public Node(T item) { nodeValue = item; next = null; }

Pembuatan Single Linked List Memerlukan variabel reference front untuk menandai node pertama pada list. Pada saat kita di node pertama, maka kita dapat menggunakan variabel next untuk menghubungkan dengan node ke dua, node ke tiga dan node berikutnya.

Membuat Node q Node<String> q = new Node<String>(); nodeValue next

Membuat Node Node<String> p = new Node<String>(“merah”); Node<String> q = p ; q p nodeValue next merah

Cara Mengakses Node q p merah nodeValue merah next Node<String> p = new Node<String>(merah) p.nodeValue (merah) p.next (null) q = p q q.nodeValue (merah) q.next (null)

Contoh q p Node<String> front, p, q; p = new Node<String>(“merah"); q = new Node<String>(“hijau"); p merah hijau q

Contoh p.next = q; front = p; front merah hijau q p

Pembuatan Single Linked List Jika linked list kosong, maka front bernilai null.

Menambahkan Node di Depan List Node<String> newNode = new Node<String>(“kuning”); newNode.next = front; front = newNode; front kuning merah hijau newNode

Membaca Linked List [kuning ,merah ,hijau ] curr front kuning merah Node<T> curr = front; String str = "[" + curr.nodeValue; while(curr.next != null) { curr = curr.next; str += ", " + curr.nodeValue; } str += "]"; [kuning ,merah ,hijau ] curr front kuning merah hijau

Menambah Node di Akhir List Node<T> curr = front ; while(curr.next != null){ curr = curr.next ; } curr.next = newNode ; front curr merah hijau kuning newNode

Menyisipkan Node di Linked List Untuk menyisipkan node baru sebelum node yang diacu oleh curr, maka perlu menandai node sebelum curr yaitu node prev karena node baru tersebut diletakkan setelah node prev dan sebelum node curr.

Menyisipkan Node di Linked List Membuat node baru (newNode) dengan value item. Menghubungkan newNode pada list yang memerlukan perubahan nilai pada newNode.next dan prev.next.

Menyisipkan Node di Linked List Node curr, prev, newNode; // membuat node baru dan memberikan nilai newNode = new Node(item); // update link newNode.next = curr; // step 1 prev.next = newNode; // step 2

Menyisipkan sebelum target.nodeValue = kuning true curr = front ; while (curr != null && !foundItem) { if (target.nodeValue.equals(curr.nodeValue)) { // menambah di tengah prev.next = newNode; newNode.next = curr ; foundItem = true; } else { // advance curr and prev prev = curr; curr = curr.next; } Menyisipkan sebelum target.nodeValue = kuning true false front prev curr merah hijau kuning coklat newNode ungu

Menyisipkan sebelum target.nodeValue = kuning true curr = front ; while (curr != null && !foundItem) { if (target.nodeValue.equals(curr.nodeValue)) { // menambah di tengah prev.next = newNode; newNode.next = curr ; foundItem = true; } else { // advance curr and prev prev = curr; curr = curr.next; } Menyisipkan sebelum target.nodeValue = kuning true false front prev curr merah hijau kuning coklat null newNode ungu null

Menghapus Node di Akhir List curr = front; while (curr.next != null) { prev = curr; curr = curr.Next;} prev.next = null; curr = null; true false curr front merah hijau kuning prev

Menghapus Node Menghapus node pada posisi curr juga memerlukan pengaksesan ke node sebelumnya yang ditunjuk oleh prev. Ubah link dari prex.next menuju curr.next

Menghapus Node Sesuai Target Node curr, prev; // reconnect prev to curr.next prev.next = curr.next;

Menghapus Node Sesuai Target curr = front; while (!curr.valueNode.equals(target.valueNode) && curr.next != null){ prev = curr; curr = curr.next;} prev.next = curr.next; curr.next = null; curr = null; curr = Null; Target.nodeValue = hijau curr = Null; front curr merah hijau kuning prev