Double Linked List_kls

Post on 29-Dec-2015

22 views 7 download

Transcript of Double Linked List_kls

DOUBLE LINKED LIST

Oleh:Tim struktur data IF

UNIKOM

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)

Deklarasi Double Linked ListType

Nama_Pointer = ↑SimpulSimpul = Record

medan_data : tipedata, prev, next : Nama_PointerEndRecord

nama_var_pointer : Nama_Pointer 

Contoh Deklarasi Double Linked ListType

Point = ↑DataData = Record

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

Operasi – operasi Double Linked List

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

Penciptaan

Sama seperti pada Single Linked List.

awal akhir

Penyisipan di Depan

- List kosong {awal = nil}

awal akhir

baru 1

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

Mula-mula keadaan list:awal

2 3

akhir

baru

1

Penyisipan di Depan (lanjutan)

awal

2 3

akhir

1

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

baru

Penyisipan di Belakang

- List kosong {awal = nil}

{sama seperti pada penyisipan di depan}

- List tidak kosong {awal ≠ Nil}awal

2 3

akhir

baru

1

Penyisipan di Belakang (lanjutan)

awal

2 3

akhir

1

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

baru

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:

Penyisipan di Tengah (lanjutan)

awal

9 107

akhir

5

bantu

baru

4

Penghapusan di depan

Awal

Akhir2

- Satu Simpul

menjadiAwal

Akhir2

Awal

Akhir

Penghapusan di depan (lanjutan)

- Lebih dari Satu Simpul

awalphapus

5

akhir

1 42

Elemen

Penghapusan di belakang

- Satu Simpul {sama seperti penghapusan di depan}

awal phapus

akhir

4

Elemen

5 12

- Lebih dari Satu Simpul

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

Buatlah subrutin untuk menghapus satu simpul di tengah!

Operasi-operasi lainnya

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

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

TERIMA KASIH