Senarai Berantai Dua Arah

Slides:



Advertisements
Presentasi serupa
Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Advertisements

STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
STRUKTUR DATA (7) single linked list circular
bentuknya, yang dapat berubah pada saat runtime.
LINKED LIST.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Senarai Berantai Adalah salah satu struktur data dinamis yang paling sederhana (linked list) atau juga disebut senarai satu arah ( one way list).
Searching.
Pertemuan 3 RECORD.
LINKED LIST (List linier)
STRUKTUR DATA PERTEMUAN 5
Single Linked List.
PENCARIAN (SEARCHING)
MODUL 3 SENARAI (LIST)…………………. TUMPUKAN (STACK)……………
Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007.
Notasi Algoritma.
Struktur Data M. Haviz Irfani, S.Si LINKED LIST.
Operasi pada pohon biner
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
LINKED LIST by Yohana N.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Metode Perancangan Program
BAB 3 STACK (TUMPUKAN).
Algoritma dan Struktur Data
List Dipersiapkan oleh : Y. Palopak SSi., MT.
STRUKTUR DATA (2) Single Linked List
Chapter 7 Linked List December 2015.
STRUKTUR DATA Linked List
4. Linked List (List Linier)
Tim struktur data IF UNIKOM
Algoritma dan Pemrograman Searching
Pointer Jamaludin malik.
Single Linked List.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
STRUKTUR DATA STACK.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Chapter 9 Linked List (Senarai Bertaut)
Algoritma dan Pemrograman Searching
Tim struktur data IF UNIKOM
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Double Linked List.
LINKED LIST Circular Linked List.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
PENCARIAN INTERPOLASI
Linked List.
Pointer & Linked List.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
STRUKTUR DATA STACK.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Senarai Berantai Ika Menarianti.
Double Linked List.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Circular Linked List.
Menghapus Simpul dan Travelsal
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
STRUKTUR DATA TUMPukAN (STACK).
SEARCHING (PENCARIAN)
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
SENARAI BERANTAI (LINKED LIST)
Algoritma dan Pemrograman Searching
Tim struktur data IF UNIKOM
STRUKTUR DATA LINKED LIST
Tim struktur data IF UNIKOM
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Pencarian (searching)
Tim struktur data IF UNIKOM
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
Algoritma dan Struktur Data
Pengulangan FOR - DO Temu 9.
STACK (Tumpukan) Tumpukan Koin.
While – Do (Lanjutan) Temu 11.
Transcript presentasi:

Senarai Berantai Dua Arah Kepala

Tujuan Untuk mengetahui simpul sebelum dan sesudahnya Untuk dapat melakukan travelsal yang dilakukan mulai dari simpul terakhir Untuk mempermudah pengaksesan, misalnya ketika melakukan penambahan di simpul akhir, dan melakukana penghapusan terhadap simpul akhir

Defenenisi struktur Data Simpul = ^Data Data = Record Info : Tipe Data Kiri,Kanan: Simpul End; Kepala^.info Kepala New(Kepala) Kepala^.Kiri = Nil Kepala^.Kanan = Nil Kepala^.Kiri Kepala^.Kanan

Menambah Simpul di awal Kepala Kepala a2 Baru Baru Diskusikan : Algoritma Untuk menambah Simpul

Procedure Tambah1(x:tipedata) New(baru) Baru^.info = x If kepala^.kanan = nil then Baru^.kanan = Kepala^.Kanan Baru^.Kiri = Kepala Kepala^.kanan = baru Else Kepala^.kanan^.kiri = baru fi

Menambah Simpul di Tengah Penambahan Simpul Ditengah, secara prinsipnya adalah sama dengan penambahan simpul setelah simpul kepala, namun dibutuhkan sebuah variabel bantu untuk mengetahui posisi sebelum simpul yang baru Proses untuk mencari posisi bantu Bantu = Kepala While Baru^.info > Bantu^.Kanan^.info Do Bantu = bantu^.kanan E-while

Menambah Simpul di Tengah Menyambung simpul yang baru ke List Kepala dilakukan dengan proses : a b d Kepala c Bantu Baru

Menambah Simpul di Tengah Kepala c Bantu Baru Baru^.Kanan = Bantu^.Kanan Baru^.kiri = Bantu Bantu^.Kanan ^.kiri = Baru Bantu^.Kanan = Baru

Procedure Tambah2( x :tipedata) New(Baru) Baru^.Info = x Bantu = Kepala While Baru^.info > Bantu^.Kanan^.info Do Bantu = bantu^.kanan E-while Baru^.Kanan = Bantu^.Kanan Baru^.kiri = Bantu Bantu^.Kanan ^.kiri = Baru Bantu^.Kanan = Baru

Menambah Simpul Di Akhir Penambahan simpul di akhir pada prinsipnya sama dengan penambahan simpul pada senarai berantai satu arah, dimana tahapan yang harus dilakukan duluan adalah melakukan penelusuran untuk menemukan simpul terakhir ( Jika Kanan = nil) Akhir = Kepala While akhir^.kanan<> Nil Do Akhir = Akhir^.Kanan E-while

Menambah Simpul Di Akhir c d Kepala Akhir Baru

Menambah Simpul Di Akhir c d Kepala Akhir Baru^.Kanan = nil Baru^.Kiri = akhir Akhir^.Kanan = baru Baru

Procedure Tambah3(x :tipe data) New(baru) Baru^.info = x Baru^.Kanan = nil Akhir = kepala While Akhir^.kanan <> nil Do akhir = akhir^.kanan E-while Baru^.Kiri = akhir Akhir^.kanan = baru

Menghapus Simpul Menghapus Simpul Awal Penghapusan simpul dapat dilakukan jika list tidak kosong List tidak kosong ditandai dengan kepala^.kanan <> nil if kepala^.kanan = nil then List Kosong, tidak ada yang akan dihapus else Penghapusan dapat dilakukan

Menghapus Simpul a b c Kepala target Hapus Hapus = kepala^.kanan Hapus^.Kanan^.kiri = Kepala Kepala^.Kanan = Hapus^.Kanan Dispose(Hapus)

Procedure Del1 If kepala^.Kanan = nil Then List kosong Else Hapus = kepala^.kanan Hapus^.kanan^.Kiri =Kepala Kepala^.kanan = Hapus^.Kanan Dispose(Hapus)

Menghapus Simpul Akhir b c Kepala target Akhir If Kepala^.Kanan = nil Then List Kosong Else Akhir = kepala^.kanan While Akhir^.kanan <> nil Do akhir = akhir^.kanan E-while Akhir^.Kiri^.Kanan = Nil Dispose(Akhir)

Traversal Kelemahan yang terjadi pada list satu arah adlah ketika harus melakukan pembacaan atau pencarian dimana dilakukan dari data yang paling terakhir tidak dapat dilakukan, kecuali harus melakukan perubahan terhadap list, yaitu memutar list Dengan list dua arah hal ini dapat dilakukan dengan langkah-langkah sbb : Tempatkan bantu berada pada posisi simpul terakhir Lakukan pergerakan Mundur sampai bantu berada pada posisi kepala

Traversal Menempatkan bantu ke simpul terakhir Bantu = kepala While Bantu^.Kanan<> nil Do bantu = bantu^.Kanan E-while Bantu a b c Kepala

Traversal Membaca mundur sampai ke Kepala While Bantu<> Kepala Do write bantu^.info bantu = bantu^.kiri E-while a b c Kepala Bantu

Traversal Bantu =kepala While Kepala^.kanan <> nil do bantu = bantu^.kanan E-while While Bantu<> kepala Do write Bantu^.info Bantu = bantu^.kiri

Senarai Berantai Dua Arah Berputar Kepala Simpul awal dikenal dengan Kepala^.kanan Simpul Akhir dikenal dengan Kepala^.kiri

Deklarasi struktur data Simpul = ^data Data = record info : tipe data Kiri,kanan : simpul End; Kepala New(kepala) Kepala^.Kiri = Kepala Kepala^.Kanan =kepala

Menambah Simpul di awal Baru^.kanan = Kepala x1 Kepala Baru^.kiri = kepala baru x1 Kepala

Procedure TambahK1(x :tipe data) New(baru) Baru^.info=x Baru^.kanan = kepala^.kanan Baru^.kiri = kepala Kepala^.kanan = baru If kepala^.kiri = keala then Kepala^.kiri = baru fi

Procedure TambahK3(x:tipe data) New(baru) Baru^.info (x) Baru^.kanan = kepala Baru^.kiri= kepala^.kiri Kepala^.Kiri^.kanan= baru Kepala^.kiri = baru