DOUBLE LINKED LIST By: De Rosal Ignatius Moses Setiadi
LATAR BELAKANG Ada
kelemahan dalam single lingked list, yaitu: pengaksesan hanya dilakukan satu arah. Perlu fasititas untuk memudahkan pengaksesan data secara bolak balik untuk pencarian dan pengurutan data Double linked list ada 2 macam: Non Circular Circular
Double
linked list terdiri dari tiga bagian:
Data (isi linked list) Prev (menunjuk alamat sebelum) Next (menunjuk alamat sesudah)
DEKLARASI DAN PEMBUATAN LIST KOSONG
DOUBLE LINKED LIST NON CIRCULAR
GAMBARAN DOUBLE LINKED LIST NON CIRCULAR List
kosong
prev
Data
next
Contoh
null
null
100
Alamat list di memory
List
A
dengan 3 elemen
100 head
null
A
100
200
100
B 200
300
200
C 300
null
TUGAS 1.
Buat program dengan Double Linked List yang terdiri dari menu: Tambah node di depan Tambah node di belakang Hapus node di depan Hapus node di depan
Tambahkan fasilitas cari yang dapat menghasilkan output: ketemu / tidak ketemu Misal: 1,2,3,4,5,6 Dicari : 5 Hasil : Ketemu 2.
TUGAS LANJUTAN 3.
Pada output no 2, tambahkan jumlah data yang ditemukan
Misal: 1,2,3,4,5,6,7,5,8,5 Dicari: 5 Hasil: ditemukan 3 data 4.
Pada output no 2, tambahkan alamat index data ditemukan, contoh :
Dari contoh no 3, Hasil diubah menjadi: ditemukan 3 data pada Index 5,8 dan10
TUGAS LANJUTAN Berikan fasilitas hapus berdasarkan data, contoh: 1,2,3,4,5,6,7,5,8,5 Dihapus: 5 Hasil: 1,2,3,4,6,7,8 5.
KETERANGAN: Tugas harus dikerjakan secara berurutan, jika tidak urut, maka bagian tersebut tidak dinilai Tugas harus dikumpulkan di lab selesai tidak selesai Jika memberikan pembetulan max 1 minggu (per nomor 3 point kec no 1 = 48 point) Jadi nilai max jika dikumpulkan hari berikutnya adalah 60 point
FUNGSI PRINTNODE DAN PRINTNODE2