Linear 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.
Struktur Data Queue Sandy dan Erick.
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
LINK LIST Latifah Rifani.
SENARAI BERANTAI TUNGGAL
Single Linked List.
Queue.
STACK.
Queue.
STRUKTUR DATA (6) single linked list non circular
Algoritma & Struktur Data
Linear List Teknik Informatika Universitas Muhammadiyah Malang SP Algoritma & Struktur Data.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Linear Data Structures (Linked List). Node Link atau pointer data field.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi ADT: Linked - List
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
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
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
BAB 5 LINKED LIST Linked list adalah struktur berupa rangkaian elemen saling berkait dimana tiap elemen dihubungkan ke elemen lain melalui pointer. Keterhubungan.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
ADT DINAMIS : SINGLY LINKED LIST DAN DOUBLE LINKED LIST
SENARAI BERANTAI TUNGGAL
Double linked list non circular
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List
LINKED LIST by Yohana N.
Single Linked List.
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
SUMMARY LINKED LIST.
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
Algoritma dan Struktur Data
11. Singly Circular Linked List
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
MATAKULIAH : STRUKTUR DATA
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Algoritme dan Stuktur Data
STRUKTUR DATA (7) single linked list circular
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA (8.2) double linked list circular
Double Linked List.
Defri Kurniawan VARIASI LIST Defri Kurniawan
LINKED LIST MELINGKAR Linked List melingkar (circular) adalah linked list linier biasa dimana pointer pada node terakhir diarahkan kembali ke node pertama.
9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :
Algoritma dan Struktur Data
Linked List A group of data which is linked each other.
Linked List DELETE TENGAH 6.3 & 7.3 NESTED LOOP.
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
SINGLE LINKED LIST (SLL)
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Linear List

Materi Array Linked List Stack Queue

Array Penjelasan ada di modul 2

Definisi Linked list : struktur data yang dibangun dari satu atau lebih node. Node terdiri dari dua bagian : data field dan pointer. Data field: bagian dari list node untuk menyimpan data. Pointer : bagian dari list node untuk menunjuk node berikutnya.

Linked List c a e d b firstNode Pointer dari node e adalah null

LinkedList vs Array Misal L=(a,b,c,d,e) a b c d e c a e d b Array representation c a e d b Linked list representation

Node Link atau pointer data field

Pointer Bantu Head/First : Pointer yang menunjuk ke node paling depan. Tail/Last : Pointer yang menunjuk ke node paling belakang.

Single Linked List

Contoh Single Linked List a b c d e null Node0 Node1 Node2 Node3 Node4

Definisi Linked list yang memiliki satu pointer. Pointer bantu : firstnode

FirstNode a b c d e null firstNode

Head & Tail a b c d e null Head last

Single Representation class ChainNode { Object element; ChainNode next; // constructors come here } next element

Constructors Of ChainNode null ChainNode() {} null element ChainNode(Object element) {this.element = element;} ChainNode(Object element, ChainNode next) {this.element = element; this.next = next;} next element

Operasi Pengaksesan (get) Penghapusan (remove) Penambahan/penyisipan (add)

Pengaksesan Node

get(0) firstnode => menunjuk pointer pada node0 firstnode.data => mengakses data pada node0 (a) a b c d e null firstNode

get(1) firstnode.next => menunjuk pointer pada node1 firstnode.next.data => mengakses data pada node1 (b) a b c d e null firstNode

get(2) firstnode.next.next => menunjuk pointer pada node2 firstnode.next.next.data => mengakses data pada node2 (c) a b c d e null firstNode

get(?) firstnode.next.next.next.next => ???????

Penghapusan Node

Penghapusan Node Langkah-langkah : Letakkan beforenode pada posisi sama dengan firstnode. Cek index yang dimasukkan lakukan pergeseran pada beforeNode untuk mencari node dengan index yang dimaksud. Jika ketemu : hapus node yang dimaksud kemudian arahkan pointer dari node pada index-1 ke node pada index+1. Jika node yang dihapus berada diawal maka jangan lupa untuk mengarahkan firstnode ke node pada index+1. Jika node yang dihapus berada pada index terakhir maka pointer dari node pada index-1 langsung diarahkan ke null

Penghapusan Node 0 Remove(0) firstnode=firstnode.next a b c d e null firstNode b c d e null firstNode

Penghapusan Node 2 Misal : Remove(2) a b c d e firstNode null Node yang akan dihapus

Penghapusan Node 2 Membutuhkan pointer bantu : BeforeNode, untuk menunjuk node sebelah kiri node yang akan dihapus. beforeNode=firstnode.next firstNode b beforeNode c null a b c d e

Penghapusan Node 2 beforeNode.next = beforeNode.next.next a b c d e null firstNode beforeNode

Penambahan Node

Penambahan Node Pointer bantu : newNode (menunjuk node yang akan ditambahkan) beforeNode (menunjuk node pada index-1)

Penambahan dari Depan Add(0,’f’) a b c d e firstNode f newNode ChainNode newNode = new ChainNode(new Character(‘f’), firstNode); a b c d e null firstNode f newNode

Penambahan dari Depan firstNode = newNode a b c d e firstNode f null firstNode f newNode

Penambahan di Tengah (Insert) Add(3,’f’) ChainNode newNode = new ChainNode(new Character(‘f’),beforeNode.next); beforeNode.next = newNode; a b c d e null firstNode f newNode beforeNode c

Double Linked List

Definisi Linked list dengan dua pointer(next & prev) Pointer next : menghadap ke node yang lebih besar indexnya. Pointer prev : menghadap ke node yang lebih kecil indexnya.

Head & Tail Head : menunjuk pada node pertama. Tail : menunjuk pada node terakhir. Pada node pertama, pointer prev mengarah ke null. Pada node terakhir, pointer next mengarah ke null.

Gambaran last Data/item prev next

Double Representation class Node { Object dData; // data item Node next; // pointer next Node prev; // pointer prev ….. }

Operasi Penambahan/penyisipan Penghapusan

Penambahan Node

Penambahan Node Penambahan di awal Penambahan di akhir Penambahan sebelum node tertentu Penambahan setelah node tertentu

Asumsi awal

Penambahan di Awal Pointer bantu : baru Langkah : Baru.next = head head.prev = Baru head = baru

Penambahan di Awal(1) last

Penambahan di Awal(2) last

Penambahan di Awal(3) last

Penambahan di Akhir Asumsi linked list awal : last

Penambahan di Akhir 1. Baru.prev = last last

Penambahan di Akhir 2. last.next = Baru last

Penambahan di Akhir 3. last = Baru last

Penambahan Setelah Node x Pointer bantu : after

Penambahan Setelah Node x Asumsi linked list awal : last

Penambahan Setelah Node x Node after; after diarahkan ke posisi node 10, bisa dimulai dari head maupun last last

Penambahan Setelah Node x 2. Baru.prev = after last

Penambahan Setelah Node x 3. Baru.next = after.next last

Penambahan Setelah Node x 4. after.next.prev = Baru last

Penambahan Setelah Node x 5. after.next = Baru last

Penambahan Setelah Node x Hasil akhir : last

Penambahan Sebelum Node x Asumsi linked list awal : last

Penambahan Sebelum Node x Node before; before diarahkan ke posisi node 5, bisa dimulai dari head maupun last last

Penambahan Sebelum Node x 2. Baru.prev = before.prev last

Penambahan Sebelum Node x 3. Baru.next = before last

Penambahan Sebelum Node x 4. before.prev.next = Baru last

Penambahan Sebelum Node x 5. before.prev = Baru last

Penambahan Sebelum Node x Hasil akhir : last

Penghapusan Node

Operasi Hapus Node (Delete) Hapus awal (Delete First) Hapus akhir (Delete Last) Hapus Node x

Asumsi Awal Asumsi linked list awal : last

Delete First 1. Node hapus; hapus = head; last

Delete First 2. head.next.prev = null last

Delete First 3. head = hapus.next last

Delete First last

Delete First Hasil akhir : last

Delete Last Asumsi linked list awal : last

Delete Last 1. Node hapus; hapus = last; last

Delete Last 2. last.prev.next = null last

Delete Last 3. last = hapus.prev last

Delete Last last

Delete Last Hasil akhir : last

Delete Node x Asumsi linked list awal :  Misalkan x = 3 last last

Delete Node x Node hapus; hapus diarahkan pada posisi node 3, bisa mulai dari head maupun last last

Delete Node x 2. hapus.prev.next = hapus.next; last

Delete Node x 3. hapus.next.prev = hapus.prev; last

Delete Node x last

Circular List

Definisi Circular List : list yang berbentuk cirrcular/melingkar, node depan terhubung dengan node paling belakang.

Gambaran a b c d e firstNode

Pustaka Sartaj Sahni, Presentation L5 & L10