Stack vs Heap
Stack adalah daftar terurut di mana penyisipan dan penghapusan item daftar hanya dapat dilakukan di satu ujung yang disebut bagian atas. Karena alasan ini, tumpukan dianggap sebagai struktur data Last in First out (LIFO). Heap adalah struktur data khusus yang didasarkan pada pohon dan memenuhi properti khusus yang disebut properti heap. Juga, heap adalah pohon lengkap, yang berarti bahwa tidak ada celah di antara daun-daun pohon, yaitu di pohon lengkap, setiap level diisi sebelum menambahkan level baru ke pohon dan simpul di level tertentu diisi dari kiri ke kanan.
Apa itu Stack?
Seperti disebutkan sebelumnya, tumpukan adalah struktur data di mana elemen ditambahkan dan dihapus hanya dari satu ujung yang disebut atas. Tumpukan hanya mengizinkan dua operasi dasar yang disebut push dan pop. Operasi push menambahkan elemen baru ke bagian atas tumpukan. Operasi pop menghapus elemen dari atas tumpukan. Jika tumpukan sudah penuh, ketika operasi push dilakukan, itu dianggap sebagai stack overflow. Jika operasi pop dilakukan pada tumpukan yang sudah kosong, itu dianggap sebagai tumpukan underflow. Karena sejumlah kecil operasi yang dapat dilakukan pada tumpukan, itu dianggap sebagai struktur data terbatas. Selain itu, menurut cara operasi push dan pop didefinisikan, jelas bahwa elemen yang ditambahkan terakhir ke dalam tumpukan akan keluar dari tumpukan terlebih dahulu. Oleh karena itu stack dianggap sebagai struktur data LIFO.
Apa itu Heap?
Seperti yang disebutkan sebelumnya, heap adalah pohon lengkap yang memenuhi properti heap. Properti heap menyatakan bahwa, jika y adalah simpul anak dari x maka nilai yang disimpan dalam simpul x harus lebih besar dari atau sama dengan nilai yang disimpan dalam simpul y (yaitu nilai(x) nilai(y)). Properti ini menyiratkan bahwa node dengan nilai terbesar akan selalu ditempatkan di root. Tumpukan yang dibangun menggunakan properti ini disebut tumpukan-maks. Ada variasi lain dari properti heap yang menyatakan kebalikan dari ini. (yaitu nilai(x) nilai(y)). Ini menyiratkan bahwa node dengan nilai terkecil akan selalu ditempatkan di root, sehingga disebut min-heap. Ada berbagai operasi yang dilakukan pada tumpukan seperti menemukan minimum (dalam tumpukan-min) atau maksimum (dalam tumpukan-maks), menghapus minimum (dalam tumpukan-min) atau maksimum (dalam tumpukan-maks), meningkatkan (dalam tumpukan-maks. -heap) atau kunci penurunan (dalam min-heap), dll.
Apa perbedaan antara Stack dan Heap?
Perbedaan utama antara tumpukan dan tumpukan adalah bahwa sementara tumpukan adalah struktur data linier, tumpukan adalah struktur data non linier. Stack adalah daftar berurutan yang mengikuti properti LIFO, sedangkan heap adalah pohon lengkap yang mengikuti properti heap. Selain itu, stack adalah struktur data terbatas yang hanya mendukung sejumlah operasi terbatas seperti push dan pop, sementara heap mendukung berbagai operasi seperti menemukan dan menghapus minimum atau maksimum, menambah atau mengurangi kunci dan menggabungkan.