Tumpukan vs Heap
Stack adalah daftar yang dipesan 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 terakhir di luar (LIFO). Heap adalah struktur data khusus yang didasarkan pada pohon dan memenuhi properti khusus yang disebut Properti Heap. Juga, tumpukan adalah pohon lengkap, yang berarti bahwa tidak ada celah di antara daun pohon i.e. Di pohon lengkap setiap level diisi sebelum menambahkan level baru ke pohon dan node di level yang diberikan diisi dari kiri ke kanan.
Apa itu tumpukan?
Seperti disebutkan sebelumnya, Stack adalah struktur data di mana elemen ditambahkan dan dihapus dari hanya satu ujung yang disebut bagian atas. Tumpukan hanya mengizinkan dua operasi mendasar yang disebut PUSH dan POP. Operasi push menambahkan elemen baru ke bagian atas tumpukan. Operasi pop menghilangkan elemen dari bagian atas tumpukan. Jika tumpukan sudah penuh, saat operasi dorong dilakukan, itu dianggap sebagai tumpukan overflow. Jika operasi pop dilakukan pada tumpukan yang sudah kosong, itu dianggap sebagai tumpukan underflow. Karena sejumlah kecil operasi yang dapat dilakukan pada tumpukan, ini dianggap sebagai struktur data terbatas. Selain itu, sesuai dengan cara operasi dorongan dan pop didefinisikan, jelas bahwa elemen yang ditambahkan terakhir ke dalam tumpukan keluar dari tumpukan terlebih dahulu. Oleh karena itu tumpukan dianggap sebagai struktur data LIFO.
Apa itu tumpukan?
Seperti disebutkan sebelumnya, heap adalah pohon lengkap yang memenuhi properti tumpukan. Tumpukan properti menyatakan bahwa, jika y adalah simpul anak x maka nilai yang disimpan dalam simpul x harus lebih besar dari atau sama dengan nilai yang disimpan dalam simpul y (i.e. nilai (x) ≥ nilai (y)). Properti ini menyiratkan bahwa simpul dengan nilai terbesar akan selalu ditempatkan di root. Tumpukan yang dibangun menggunakan properti ini disebut max-heap. Ada variasi lain dari properti tumpukan yang menyatakan kebalikan dari ini. (Saya.e. nilai (x) ≤ nilai (y)). Ini menyiratkan bahwa simpul dengan nilai terkecil akan selalu ditempatkan di root, dengan demikian disebut min-heap. Ada berbagai operasi yang dilakukan pada tumpukan seperti menemukan minimum (dalam penampung min) atau maksimum (dalam pemeliharaan maksimal), menghapus minimum (dalam pemasangan min) atau maksimum (dalam max-heaps), meningkat (dalam maksimal -heaps) atau kunci penurunan (di heaps min), dll.
Apa perbedaan antara tumpukan 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 yang dipesan yang mengikuti properti LIFO, sedangkan tumpukan adalah pohon lengkap yang mengikuti properti tumpukan. Selain itu, Stack adalah struktur data terbatas yang hanya mendukung sejumlah operasi sebagai push dan pop, sementara Heap mendukung berbagai operasi seperti menemukan dan menghapus minimum atau maksimum, meningkatkan atau mengurangi kunci dan penggabungan.