Double Linked List

 Double Linked List

Apa itu Double Linked List?

Double Linked List adalah struktur data linier yang memungkinkan akses ke node sebelumnya dan selanjutnya dalam list. Berbeda dengan Single Linked List yang hanya memungkinkan akses ke node selanjutnya.

Konsep Dasar Double Linked List

  •     Node: Setiap elemen dalam Double Linked List disebut node
  •     Data: Setiap node menyimpan data yang ingin disampaikan
  •     Pointer: Setiap node memiliki dua pointer:
    •         Next Pointer: Menunjuk ke node selanjutnya dalam list
    •         Previous Pointer: Menunjuk ke node sebelumnya dalam list

Keuntungan Double Linked List:
  1. Akses Dua Arah: Anda dapat menelusuri list dari depan ke belakang dan sebaliknya dengan mudah.
  2. Penambahan dan Penghapusan Node: Penambahan dan penghapusan node dapat dilakukan dengan mudah di kedua ujung list atau di tengah list.
  3. Efisiensi: Operasi seperti pencarian, penambahan, dan penghapusan node dapat dilakukan dengan efisien.
Kekurangan Double Linked List:
  1. Memori: Double Linked List membutuhkan lebih banyak memori dibandingkan Single Linked List karena setiap node memiliki dua pointer.
  2. Kompleksitas: Implementasi Double Linked List lebih kompleks dibandingkan Single Linked List.
Operasi Umum pada Double Linked List:
  • Penambahan Node:
    • Di Awal: Buat node baru, atur pointer next ke node pertama, atur pointer previous ke NULL, atur pointer next dari node pertama ke node baru, dan atur pointer head ke node baru.
    • Di Akhir: Buat node baru, atur pointer next ke NULL, atur pointer previous ke node terakhir, atur pointer next dari node terakhir ke node baru.
    • Di Tengah: Buat node baru, atur pointer next ke node setelah node target, atur pointer previous ke node target, atur pointer next dari node target ke node baru, atur pointer previous dari node setelah node target ke node baru.
  • Penghapusan Node:
    • Di Awal: Atur pointer head ke node kedua, atur pointer previous dari node kedua ke NULL.
    • Di Akhir: Atur pointer next dari node sebelum node terakhir ke NULL.
    • Di Tengah: Atur pointer next dari node sebelum node target ke node setelah node target, atur pointer previous dari node setelah node target ke node sebelum node target.
  • Pencarian Node:
    • Linear Search: Traversal list dari depan ke belakang atau sebaliknya hingga node yang dicari ditemukan.
    • Traversal
    • Forward Traversal: Mulai dari head dan ikuti pointer next hingga mencapai NULL.
    • Backward Traversal: Mulai dari tail dan ikuti pointer previous hingga mencapai NULL.

Kesimpulan:
Double Linked List adalah struktur data yang fleksibel dan efisien untuk berbagai operasi seperti penambahan, penghapusan, dan pencarian node. Namun, implementasinya lebih kompleks dibandingkan Single Linked List. Pemilihan struktur data yang tepat tergantung pada kebutuhan dan kompleksitas aplikasi.

Dila Ananda Oktafiani

Komentar