REVIEW
LINKED LIST
Linked list adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi.
Linked List terdiri dari berbagai macam, contohnya:
-Singly Linked List
Linked list yang pointernya hanya mengarah ke NODE yang menampung. Singly linked list hanya memiliki 1 arah dan tidak bolak-balik.
Contoh:
Linked list adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi.
Linked List terdiri dari berbagai macam, contohnya:
-Singly Linked List
Linked list yang pointernya hanya mengarah ke NODE yang menampung. Singly linked list hanya memiliki 1 arah dan tidak bolak-balik.
Contoh:
-Doubly Linked List
Linked list yang
memiliki pointer penunjuk 2 arah, yakni ke node sebelum dan ke node sesudah.
Contoh:
OPERASI
PADA DOUBLY LINKED LIST
-
INSERT
Insert bisa
dilakukan di depan, tengah, dan di belakang
- DELETE
Sama seperti
INSERT, DELETE juga bisa dilakukan di depan, tengah,dan di belakang
- TRAVERSAL
Mengunjungi semua
elemen list dan biasanya dimulai dari elemen pertama
- SEARCHING
Melakukan
searching berdasarkan suatu kunci untuk mencaru apakah data yang diinginkan ada
dalam list dan sekaligus mendapatkan alamat dari elemen yang dicari
-Circular Doubly Linked List
Linked list yang
memiliki 3 pointer, dimana setiap node memiliki 3 field, yaitu:
- 1 field yang menunjuk
pointer berikutnya
- 1 field yang menunjuk
pointer sebelummnya
- 1 field yang berisi
data untuk node tersebut
Contoh:
HASHING TABLE & BINARY TREE
HASHING TABLE
HASHING adalah proses
menghasilkan output yang panjangnya sama dari input yang panjangnya berbeda.
Hashing digunakan untuk menandai dan mendapatkan kembali suatu hal dalam
database.
Hashing table adalah
struktur data yang terdiri dari table yang menyimpan string yang asli. Keunggulan
dari struktur hash table ini adalah waktu aksesnya yang cukup cepat, jika
record yang dicari langsung berada pada angka hash lokasi penyimpanannya.
Contoh Hashing Table
Implementasi hashing table
dalam blockchain
Hash adalah sebuah kode yang ada dalam sebuah data
di Blockchain. Isi dari hash tersebut adalah
serangkaian kata dan huruf. Dalam blockchain, nilai output yang dikenal sebagai
hash, digunakan sebagai sebuah penanda unit untuk blok data. Blok hash
bergantung pada data yang terdapat dalam blok tersebut, yang berarti setiap
perubahan yang terjadi pada data tersebut membutuhkan perubahan pada blok hash.
Blockchain digunakan dalam Bitcoin.
BINARY TREE
Binary tree adalah sebuah struktur data yang
menyerupai pohon dan setiap simpulnya memiliki cabang maksimal 2.
Jenis-jenis binary tree
- · Perfect binary tree
- · Complete binary tree
- · Skewed binary tree
- · Balanced binary tree
Contoh Binary Tree
BINARY SEARCH
TREE
Binary search tree adalah
struktur data yang mengadopsi konsep Binary Tree namun terdapat aturan bahwa
setiap clild node sebelah kiri selalu lebih kecil nilainya dari pada root node. Begitu pula sebaliknya, setiap child node
sebelah kanan selalu lebih besar nilainya daripada root node.
Pada Binary
Search Tree terdapat aturan :
· Setiap
child node sebelah kiri harus lebih kecil daripada root nodenya
· Setiap
child node sebelah kanan harus lebih besar dariapada root nodenya
Ada 3 jenis metode
untuk melakukan penelusuran data pada Binary Search Tree, antara lain :
· PreOrder
· InOrder
· PostOrder
AVL Tree adalah binary search tree
yang dapat menyeimbangkan dirinya sendiri. Tiap subtree kiri dan kanan memiliki
perbedaan tinggi maksimal 1.
Terdapat 2 operation pada AVL Tree, yaitu :
Terdapat 2 operation pada AVL Tree, yaitu :
- Insertion
- Deletion
Proses insertion pada AVL Tree sama
halnya dengan insertion pada Binary Search Tree. Dimana Node baru diposisikan
sebagai leaf.
Rebalance pada AVL Tree dapat
dilakukan dengan Single Rotation dan Double Rotation.
Terdapat 4 kasus dalam proses
rebalance AVL Tree
Yang pertama, node terdalam terletak
pada subtree kiri dari anak kiri T.
Yang kedua, node terdalam terletak
pada subtree kanan dari anak kanan T.
Yang ketiga, node terdalam terletak
pada subtree kanan dari anak kiri T.
Yang keempat, node terdalam terletak pada
subtree kiri dari anak kanan T.
Untuk kasus 1&2 dapat
diselesaikan dengan Single Rotation. Sedangkan, untuk kasus 3&4 dapat
diselesaikan dengan Double Rotation.
Contoh Single Rotation
Contoh Double Rotation
Proses Deletion pada AVL Tree sama
halnya dengan Deletion pada Binary Search Tree. Node yang dihapus digantikan
oleh node terbesar pada subtree kiri atau node terkecil pada subtree kanan.
Contoh Deletion AVL
Tree
HEAP AND TRIES
Heap adalag binary tree lengkap yang berdasarkan struktur data dimana
value key pada node nya diatur sedemikian rupa sehungga value key pada node
anaknha tidak ada yang lebih besar dari value key node orang tuanya.
Terdapat 2 macam heap :
• Min Heap
Setiap elemen node lebih kecil dari anaknya
• Max Heap
Setiap elemen node lebih besar dari anaknya
MIN
HEAP
Setiap elemen node lebih kecil dari elemen anaknya. Element heap
terbesar terleta di salah satu leaf node. Heap bisa diimplementasikan dengan linked-list,
tetapi lebih mudah diimplementasikan dengan array.
Contoh Min-Heap
Aplikasi
penggunaan Heap
• Priority Queue
• Selection Algorithm
• Dijkstra’s Algortihm
• Prim Algorithm
• Heap Sort
Insertion di Min-Heap
Menginput element baru di akhir heap.
Membandingkan nilai node sekarang dengan nilai parent nya. Jika nilai node
sekarang lebih kecil dari parent nya, tukar nilainya. Berhenti menukar jika
nilai parent nya lebih kecil dari nilai node sekarang.
Contoh insertion Min-Heap
Deletion di Min-Heap
Menukar root dengan element terakhir
heap. Mengurangi jumlah element di dalam heap. Membandingkan nilai node
sekarang dengan nilai di kiri dan kanan. Menukar nilai node sekarang dengan
child terkceil. Berhenti menukar jika nilai node yang sekarang lebih kecil
daripada nilai children nya.
Contoh Deletion Min-Heap
MAX-HEAP
Setiap elemen node lebih besar dari
element children nya. Ini menyatakan jika elemen terbesar terletak di root.
MIN-MAX HEAP
Kegunaan dari min-max
untuk mencari elemen terbesar dan terkecil dari heap dalam waktu yang
bersamaan.
Contoh MIN-MAX HEAP
Dalam Min-Max Heap elemen terkecil
terdapat di root. Elemen terbesar terletak di salah satu root’s child.
Insertion di Min-Max Heap
Insert elemen baru di akhir heap.
Upheap elemen baru.
Deletion di Min-Max
Heap
Deletion elemen terkecil
· Menukar
root dengan elemen terakhir di heap
· Mengurangi
jumlah elemen heap
· Dowheapamin
dari root
Deletion elemen terbesar
· Menukar
left-child atau right-child dari root
· Mengurangi
jumlah elemen di heap
· Downheapmax
dari node
Contoh deletion Min-Max Heap
TRIES
Tries adalah struktur data tree
berurutan yang digunakan untuk menyimpan array yang asiosiatif.
Aplikasi penggunaan tries
· Penyelesaian
otomatis tulisan yang akan dicari pada browser
· Pemeriksa
ejaan
Contoh dari tries
Source :
http://suciantinovi.blogspot.com/2014/03/binary-tree.html
http://muqoddasrengmadureh.blogspot.com/2013/01/algoritma-dan-struktur-data-hashing.html
http://muqoddasrengmadureh.blogspot.com/2013/01/algoritma-dan-struktur-data-hashing.html
geeksforgeeks.org
javatpoint.com
https://medium.com/@randerson112358/max-heap-deletion-step-by-step-f402861523dahttp://people.cs.ksu.edu/~rhowell/DataStructures/trees/tries/intro.html
Comments
Post a Comment