Langsung ke konten utama

Linked List


Jadi ini adalah rangkuman dari pertemuan ke 3 mata kuliah Data Structures yang kelasnya tercancel karena bencana alam yang terjadi pada hari ini. Semoga kita semua baik – baik saja ya dan bisa belajar di universitas tercinta kita besoknya. Jadi tanpa basa – basi, ini adalah linked list.

Hal Hal yang kita pelajari pada pertemuan ke 3 ini adalah sebagai berikut:
  • Circular Single Linked list
  • Single Linked List
  • Doubly Linked List
  • Circular Doubly Linked List
Kenapa namanya susah – susah ya? Tapi gapapa, mungkin semakin susah dilafalkan. Maka semakin bagus!

Single linked list dan Circular single linked list
linkedlist
Linked List (geeksforgeeks)

Linked list adalah data structure linear. Nah tidak seperti array, linked list itu elemennya tidak disimpan bersebelahan. Elemen – elemen dari linked list disambung dengan pointer. Dalam kata lain, linked list adalah sekumpulan data yang dihubungkan dengan pointer data sebelumnya. Nah, apa itu circular single linked list? Untung dapat mengerti, kita butuh bantuan dari gambar dibawah ini.

Circular Single Linked List (geeksforgeeks)

Nah, bisa kita lihat, tidak seperti linked list biasanya, circular single linked list tidak mempunyai null di akhir. Circular linked list sendiri pengertiannya adalah linked list yang setiap nodusnya terkoneksi sehingga membuat bentuknya seperti melingkar. Nodus terakhirnya mengandung pointer dari nodus pertama. Implementasi dari circular linked list adalah pada pembuatan antrian.

Doubly Linked List 
Doubly Linked List (DLL) mengandung pointer ekstra yang biasanya disebut previous pointer. Selebihnya sama dengan linked list yang biasa.
 dll
Doubly Linked List dalam bahasa C (geeksforgeeks)

Karena ada pointer ekstra yang bernama previous, maka pada doubly linked list, operasi dapat dilakukan secara dua arah. Nah keuntungannya dapat dirasakan ketika kita ingin menghapus nodus sebelumnya. Pada single linked list, kita tidak dapat melakukannya karena arahnya hanya next, tidak dapat ke belakang lagi. Nah ternyata doubly linked list ini juga mempunyai kekurangan. Mempunyai pointer dengan dua arah membuat Doubly Linked List ini mempunyai ukuran data yang besar. Jika kita tidak membutuhkan pointer dengan dua arah, sebaiknya permudah hidup dengan hanya menggunakan single linked list.

Circular Doubly Linked List
Ternyata selain ada circular single linked list, circular double linked list juga ada loh! Gimana kalo ada triple linked list ya? Daripada dipikirin yaudah nih arti dari double linked list. Double linked list adalah linked list yang mempunyai karakterisitik dari doubly linked list dan circular linked list. Circular Doubly Linked List mempunyai pointer next dan previous dan bentuknya melingkar, sehingga tidak ada null di akhir.
 Circular doubly linked list
Circular Doubly Linked List (geeksforgeeks)

Referensi untuk rangkuman:


Komentar

Postingan populer dari blog ini

How do you get to the top of Mt Coronet in Pokemon Diamond?

Note: If you are going to try to catch Dialga or Palkia (diamond or pearl) make sure you have a bunch of Ultra and Dusk balls!! First, Fly to Hearthome city and head west, Route 208. Enter the cave and once inside, you should go north.When you first enter the cave, you need to head west to the opposite side. Once you reach the west entrance, head north and surf across the pond. Use rock climb to reach the stairs up. In the next room: Go- North, West, South, Upstairs, North, West over bridge, down stairs, up north, stairs,up stairs, cross bridge, down stairs, down stairs, upstairs and in cave door. In the Next room: Up stairs, up stairs Again Next room: up stairs, north, west, south, Out. Now you are outside. Follow the path and use rock climb when you get there. Now don't use rock climb again, instead, head west and through the grass until you reach another cave. Inside, use rock climb, follow the path, down the stairs then east, you're out of the cave. ...

Binary Search Tree

Pengertian Binary Search Tree Binary search tree adalah sebuah metode dari data structure yang mempunyai ciri sebagai berikut: Bagian kiri dari subtree adalah nodus yang mempunyai nilai yang lebih kecil Bagian kanan dari subtree adalah nodus yang mempunyai nilai yang lebih besar Bagian kiri dan kanan dari subtree harus berupa binary search tree juga Mencari Sebuah Angka (searching) Ilustrasi Binary Search Tree dari geeksforgeeks Bisa kita lihat dari contoh diatas, bagian kiri dari binary search tree merupakan nilai yang kecil sedangkan bagian kanannya adalah nilai-nilai yang besar. Kita bisa mengambil contoh angka 7. Ketika angka 7 ingin dicari pada binary search tree diatas, maka dia akan mengecek. Apakah 8 lebih kecil atau besar dari 7? Karena lebih kecil, maka 7 akan dicari di bagian kiri. Kemudian, akan dicek lagi. Apakah 7 lebih kecil daripada 3? Jawabannya adalah tidak, sehingga 7 dicari dibagian kanan. Lalu ketika sampai di 6, karena 7 lebih besar...

Heaps & tries

Heap Minggu lalu kita sudah membahas AVL Tree dan sekarang kita akan membahas Heap & Tries. Heap adalah sebuah struktur data dengan konsep binary tree. Heap mempunyai dua jenis yaitu: Min - heap Max - heap Min - Max heap Heap dapat diimplementasikan dengan linked list, namun akan lebih gampang jika menggunakan array. Agar lebih jelas, lebih baik kita lihat gambar berikut ini. Heap dari geeksforgeeks Min - Heap Pada min - heap terdapat aturan agar heap itu dapat dibuat. Aturan tersebut adalah angka atau huruf yang ada di root harus paling kecil daripada anak - anaknya. Hal ini juga berlaku pada subtree lainnya secara rekursif. Jadi, yang diatas harus lebih kecil daripada bawahnya. Insertion Berbeda dengan BST yang mempunyai aturan kiri harus yang kecil dan kanan yang besar, min - heap hanya menghiraukan atasnya. Pada kasus min - heap berarti atasnya harus lebih kecil daripada bawahnya. Agar kita mengerti cara menginsertnya, lihat gambar berikut: Kita ak...