Langsung ke konten utama

LINKED LIST
 Linked List (Senerai Berantai) di dalam Bahasa pemorgraman merupakan sebuah struktur data yang digunakan untuk menyimpan sejumlah objek data yang biasanya secara berurut  sehingga memungkinkan penambahan, pengurangan, dan pencarian atas elemen yang ingin dicari dalam list tersebut menjadi efektif.

Struktur data mempunyai elemen atau yang bisa dikatakan sebagai tempat untuk mencatat/ menyimpan data antara satu dengan yang lainnya sehingga menjadi barisan list abstrak. Nah, barisan list abstrak ini dinamakan node.

Di dalam Linked List ini, kita diperbolehkan untuk memasukan nilai dan menghilangkan nilai elemen di tempat manapun selama itu masih didalam node yang kita punya. Biasanya Linked List ini digunakan di algoritma untuk menyelesaikan Real-Time Problems, dimana jumlah elemen yang dimasukan tidak terduga.

Didalam Linked List sendiri pun kita dapat melakukan yang namanya penambahan (insert) atau penghapusan (delete) node yang anggapan sudah tidak dipakai lagi. Untuk penjelasan insert dan delete akan dijelaskan selanjutnya.

Tapi, terkadang untuk yang sudah mengerti algoritma, akan bertanya-tanya tentang apakah perbedaan antara Linked List sendiri dengan Array ? Berikut adalah penjelesannya.
NO
Linked List
Array
1
Setiap element linked list terdiri dari  bagian, data dan pointer address
Setiap element array hanya berisi data saja
2
Pengalokasian ruang memori dilakukan tanpa pendeklarasian sebelumnya dan terbatas pada jumlah ruang memori yang tersisa (dapat dipakai)
Pengalokasian ruang memori terbatas pada jumlah ruang yang dideklarasikan sebelumnya.


Adapun beberapa contoh Linked List didalam Bahasa pemograman, yaitu sbb :

  1.                     Circular Linked List
  2.                     Doubly Linked List 
  3.              Circular Doubly Linked List


A.      Circular Linked List
Program to delete a new node from the beginning of the circular linked list
       Di gambar atas, dapat kita lihat dimana HEAD (node pertama didalam linked list) di
Linked List tersebut adalah ‘A’ dan TAIL (node terakhir didalam linked list)-nya adalah ‘D’.
Dan untuk mendapatkan sesuai gambar diatas kita dapat menggunakan
tail(node D)->next = head (node A).
B.      Doubly Linked List
Di dalam Doubly Linked List, dikenalkan pointer bernama next dan prev dimana fungsi dari pointer ini adalah :
·       Next : meminta computer untuk memajukan head/tail yang kita sudah tentukan sebelumnya.
·        Prev : meminta computer untuk memundurkan head/tail yang sudah kita tentukan sebelumnya.
Tapi, apa yang terjadi jika kita memajukan tail yang letaknya sudah di ujung kanan dan memundurkan head yang letaknya juga sudah di ujung kiri. Well, disini kita dikenalkan lagi atau bisa dikatakan sebagai pushHead dan pushTail. Apa sih kegunaannya ? ini di peruntukan untuk meng-set Head dan Tail yang baru. Caranya/ Algoritmanya bagaimana kalau ini ?


Sebelum kita melompat ke Algoritma pushHead dan pushTail, seperti yang pernah dikatakan diatas, kita bisa menambahkan node baru pada list kita. Bagaimana kah itu ?
Algoritma
1.       Menambahkan node baru :
A screenshot of text

Description automatically generated

2.       pushHead & pushTail
A screenshot of a computer

Description automatically generated
3.       Delete Head/ Tail
A picture containing text

Description automatically generated

C.       Circular Doubly Linked List
Doubly Circular Linked List
Sama seperti Single Linked List, ini menyatukan head dengan tail. Tapi bedanya disini adalah, kita juga menyatukan tail dengan head lagi. Caranya adalah dengan
tail -> next = head dan head -> prev = tail.

Sekiain terima kasih untuk penjelasan Linked List ini. Mungkin kurang lengkap dari penjelasan penjelasan web lainnya. Mohon maaf jika ada kesalahan.

Komentar

Postingan populer dari blog ini

Heap & Tries {Theory}

HEAP & TRIES 1.        Heap Dalam  ilmu komputer , sebuah  heap  adalah struktur data yang berdasarkan konsep struktur data  pohon . Di heap, juga diterapkan konsep binary tree. Terdapat 3 jenis heap, diantaranya : a.      Min heap Min heap merupakan heap yang node rootnya adalah angka terkecil dan setiap anak dari rootnya selalu lebih kecil daripada parentnya. Biasanya min heap ini, dia ascending ( dari terkecil ke terbesar ). b.     Max heap Max heap ini sama seperti min heap, tapi bedanya adalah angka yang berada di root adalah angka terbesar dan max heap ini descending ( dari terbesar ke terkecil ). c.      Min Max heap Untuk min max heap ini cukup unik, dimana root dari heap ini merupakan angka terkecil didalam tree nya, tapi angka yang berada dii node anak dari sebuah root merupakan angka paling besar dan berlaku seterusnya sampai ke bawah. Berikut ad...

AVL Tree [Theory]

AVL TREE AVL tree is a self-balancing Binary Search Tree (BST) where the difference between heights of left and right subtrees cannot be more than one for all nodes. For example :    (Left : Correct AVL Tree || Right : Wrong AVL Tree) The reason why right AVL tree is wrong because the above tree is not AVL because differences between heights of left and right subtrees for 8 and 18 is greater than 1. AVL trees have an additional guarantee: The difference between the depth of right and left subtrees cannot be more than one. In order to maintain this guarantee, an implementation of an AVL will include an algorithm to rebalance the tree when adding an additional element would upset this guarantee. AVL trees have a worst case lookup, insert and delete time of O(log n). In AVL Tree, we can perform Insertion and Deletion. ·        Insertion To make sure that the given tree remains AV...

Binary Tree Introduction

BINARY TREE DATA STRUCTURE               A tree whose elements have at most 2 children is called a binary tree. Since each element in a binary tree can have only 2 children, we typically name them the left and right child. PARTS OF NODE IN BINARY TREE : 1.       Data, 2.       Pointer to left child, and 3.       Pointer to right child. THE USED FROM BINARY TREE ARE FOLLOWING : 1.       Manipulate hierarchical data, 2.       Make information easy to search, 3.       Manipulate sort list of data, 4.       Composting digital images for visual effect, 5.       Router Algorithms, and 6.         Form of a multi-stage decision-making (see business chess). TREE’S PART 1. ...