Langsung ke konten utama

Heap & Tries

Nama: Bryan Frederick
NIM: 2301871984

HEAP

          Jadi, heap ini seperti binary tree tetapi inputannya dari array. Heap ini struktur data yang berbasis pohon biner lengkap dengan properti heap. Ada 3 jenis heap yaitu: min-heap, max-heap, min max - heap.

1. min-heap itu setiap node elemennya lebih kecil dari node elemen anaknya. Jadi, dapat disimpulkan bahwa min-heap pada rootnya pasti selalu yang paling kecil. Heap ini dapat diimplementasikan menggunakan linked list, tetapi jauh lebih mudah menggunakan implementasi dari heap menggunakan array. Heap adalah implementasi efisien dari struktur data antrian prioritas.
find-min: cari elemen terkecil di heap.
masukkan: masukkan elemen baru ke heap.
delete-min: hapus elemen terkecil dari heap.
delete-min juga disebut pop, dan masukkan disebut push.

Implementasi Array
• Setiap simpul terkait dengan parentnya, kiri dan kanan pada implementasi array dapat dikomputasi dengan mudah.
• Biarkan indeks simpul saat ini menjadi x.
   • Induk (x) = x / 2
   • Anak kiri (x) = 2 * x
   • Anak kanan (x) = 2 * x + 1
Inilah sebabnya kami menggunakan indeks 1 sebagai root, jika tidak, relasinya tidak akan tampak sesederhana ini.

2.max-heap itu setiap node elemennya lebih besar dari node elemen anaknya. Jadi, konsepnya sama saja dengan min-heap hanya terbalik saja. kalau min heap yang kecil maka max heap yang besar.

3. min max heap. ini seperti gabungan dari kedua heap tetapi bedanya seperti ini, jadi di binary tree kita tau ada levelnya seperti level 1,2 dan 3 atau dikenal dengan ketinggian. nah untuk level 1 misalnya min maka level 2 max.



TRIES

kalau heap lebih ke array angka maka tries ini lebih ke array character atau string. dan ini berguna biasanya dalam mencari inisial dan ini akan sangat membantu sekali seperti pembuatan kamus.

Demikian yang dapat saya sampaikan.
sumber materi binusmaya resources.

Komentar

Postingan populer dari blog ini

Linked List Bryan Frederick(2301871984) Linked list adalah koleksi data item yang tersusun dalam sebuah barisan, dengan penyisipan dan pemindahan dapat dilakukan dalam semua tempat atau linked list juga bisa diartikan sebagai sebuah data yang digunakan untuk menyimpan node atau value. Dalam linked list terbagi menjadi 2 yaitu single linked list dan double linked list. Single linked list adalah sebuah linked list yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan suatu daftar isi yang saling berhubungan, sedangkan, double linked list adalah mengatasi kelemahan-kelemahan dalam single linked list contohnya dengan dua buah pointer yaitu prev dan next. ada 4 kondisi yang perlu diperhatikan dalam deleting node untuk doubly linked list(jika ingin mendelete node): 1. node yang akan dihapus adalah satu-satunya simpul dalam daftar tertaut. 2. node yang akan dihapus adalah head. 3. node yang akan dihapus adalah tail. 4. node yang akan dihapus bukan head a...