double linked list_kls

23
DOUBLE LINKED LIST Oleh: Tim struktur data IF UNIKOM

Upload: heri-setiawan

Post on 29-Dec-2015

22 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Double Linked List_kls

DOUBLE LINKED LIST

Oleh:Tim struktur data IF

UNIKOM

Page 2: Double Linked List_kls

Double Linked List

Linked list dengan simpul berisi satu link / pointer yang mengacu ke simpul berikutnya dan satu link/pointer yang mengacu ke simpul sebelumnya.Simpul Double Linked List :       

Medan Data(Info)

Medan Sambungan Kanan(Next)

Medan Sambungan Kiri(Prev)

Page 3: Double Linked List_kls

Deklarasi Double Linked ListType

Nama_Pointer = ↑SimpulSimpul = Record

medan_data : tipedata, prev, next : Nama_PointerEndRecord

nama_var_pointer : Nama_Pointer 

Page 4: Double Linked List_kls

Contoh Deklarasi Double Linked ListType

Point = ↑DataData = Record

info : integer, next, prev : Point Endrecordawal, akhir : Point

Page 5: Double Linked List_kls

Operasi – operasi Double Linked List

1. Penciptaan (Create)2. Penyisipan3. Penghapusan4. Traversal5. Pencarian (Searching)6. Pengurutan (Sorting)7. Penghancuran (Destroy)

Page 6: Double Linked List_kls

Penciptaan

Sama seperti pada Single Linked List.

awal akhir

Page 7: Double Linked List_kls

Penyisipan di Depan

- List kosong {awal = nil}

awal akhir

baru 1

Page 8: Double Linked List_kls

Penyisipan di Depan (lanjutan)- List tidak kosong {awal ≠ Nil}

Mula-mula keadaan list:awal

2 3

akhir

baru

1

Page 9: Double Linked List_kls

Penyisipan di Depan (lanjutan)

awal

2 3

akhir

1

Keadaan list setelah terjadi penyisipan di depan/awal pada kondisi list tidak kosong:

baru

Page 10: Double Linked List_kls

Penyisipan di Belakang

- List kosong {awal = nil}

{sama seperti pada penyisipan di depan}

- List tidak kosong {awal ≠ Nil}awal

2 3

akhir

baru

1

Page 11: Double Linked List_kls

Penyisipan di Belakang (lanjutan)

awal

2 3

akhir

1

Keadaan list setelah terjadi penyisipan di belakang/akhir pada list tidak kosong

baru

Page 12: Double Linked List_kls

Awal5 97

Akhir

10

Awal

5 97

Akhir

10

bantu

Penyisipan di Tengah

Misalkan akan menyisipkan angka 4 sebelum angka 9

Mula-mula keadaan list sebagai berikut:

Page 13: Double Linked List_kls

Penyisipan di Tengah (lanjutan)

awal

9 107

akhir

5

bantu

baru

4

Page 14: Double Linked List_kls

Penghapusan di depan

Awal

Akhir2

- Satu Simpul

menjadiAwal

Akhir2

Awal

Akhir

Page 15: Double Linked List_kls

Penghapusan di depan (lanjutan)

- Lebih dari Satu Simpul

awalphapus

5

akhir

1 42

Elemen

Page 16: Double Linked List_kls

Penghapusan di belakang

- Satu Simpul {sama seperti penghapusan di depan}

awal phapus

akhir

4

Elemen

5 12

- Lebih dari Satu Simpul

Page 17: Double Linked List_kls

Penghapusan di Tengah

awal phapus

5 7 9 10

akhir

Elemen

awal

5 9 10

akhir

- Satu Simpul {sama seperti penghapusan di depan}- Lebih dari Satu SimpulMisalkan data yang akan dihapus angka 7

Page 18: Double Linked List_kls

Buatlah subrutin untuk menghapus satu simpul di tengah!

Page 19: Double Linked List_kls

Operasi-operasi lainnya

Operasi-operasi lainnya seperti traversal, searching, sorting dan destroy diperlakukan sama seperti pada single linked list

Page 20: Double Linked List_kls

Tugas

Ubah tugas yang menggunakan single linked list menjadi double linked list, dengan Menu sbb:MENU UTAMA1. Sisip Data2. Hapus Data3. Cari Data4. Tampil Data5. Keluar

MENU SISIP1. Sisip Depan2. Sisip Tengah3. Sisip Belakang4. Kembali ke Menu

Utama

MENU HAPUS1. Hapus Depan2. Hapus Tengah3. Hapus Belakang4. Kembali ke Menu

Utama

MENU CARI1. Cari Kode2. Cari

Nama/Harga/Stok3. Kembali ke Menu

Utama

Data harus sudah tersusundan memanggil satu subrutin traversal lainnya

Memanggil subrutin penghancuran

Page 21: Double Linked List_kls
Page 22: Double Linked List_kls

TERIMA KASIH

Page 23: Double Linked List_kls