Stack vs Heap
Stack adalah senarai yang disusun di mana penyisipan dan pemadaman item senarai boleh dilakukan hanya pada satu hujung yang disebut atas. Disebabkan oleh sebab ini, timbunan dianggap sebagai struktur data Last in First (LIFO). Heap adalah struktur data khas yang berdasarkan pokok dan ia memenuhi harta khas yang dipanggil harta tumpukan. Juga, timbunan adalah pokok yang lengkap, yang bermaksud bahawa tiada jurang di antara daun pokok iaitu dalam pokok yang lengkap setiap peringkat diisi sebelum menambah tahap baru ke pokok itu dan nod pada tahap tertentu dipenuhi dari kiri ke kanan.
Apakah Stack??
Seperti yang disebutkan sebelumnya, timbunan ialah struktur data di mana elemen ditambah dan dikeluarkan dari hanya satu hujung yang disebut atas. Tumpukan membenarkan hanya dua operasi asas yang dipanggil push and pop. Operasi tolak menambah elemen baru ke bahagian atas timbunan. Operasi pop membuang elemen dari bahagian atas timbunan. Jika timbunan sudah penuh, apabila operasi tolak dilakukan, ia dianggap sebagai limpahan timbunan. Jika operasi pop dilakukan pada susunan yang sudah kosong, ia dianggap sebagai aliran bawah. Oleh kerana bilangan operasi yang kecil yang boleh dilakukan pada timbunan, ia dianggap sebagai struktur data yang terhad. Di samping itu, mengikut cara operasi dorong dan pop ditakrifkan, jelas bahawa unsur-unsur yang ditambah terakhir ke timbunan keluar dari timbunan terlebih dahulu. Oleh itu, timbunan dianggap sebagai struktur data LIFO.
Apa itu Heap?
Seperti yang dinyatakan sebelum ini, tumpukan adalah pokok lengkap yang memenuhi harta tumpukan. Kekuatan heap menyatakan bahawa, jika y adalah nod kanak-kanak x maka nilai yang disimpan dalam nod x harus lebih besar daripada atau sama dengan nilai yang disimpan dalam nod y (iaitu nilai (x) ≥ nilai (y)). Harta ini menunjukkan bahawa nod dengan nilai yang paling besar akan sentiasa diletakkan di akar. Tumpukan yang dibina menggunakan harta tanah ini dipanggil timbunan maksimum. Terdapat satu lagi variasi harta tumpukan yang menyatakan sebaliknya. (iaitu nilai (x) ≤ nilai (y)). Ini bermakna bahawa nod dengan nilai terkecil akan sentiasa diletakkan di akar, oleh itu dipanggil nikel. Terdapat pelbagai operasi yang dilakukan pada timbunan seperti mencari minimum (dalam min-timbunan) atau maksimum (dalam max-timbunan), memadam minimum (dalam min-timbunan) atau maksimum (dalam max-timbunan), meningkat (max -lampau) atau kekurangan (dalam kunci min), dsb.
Apakah perbezaan antara Stack dan Heap?
Perbezaan utama antara susunan dan tumpukan ialah ketika timbunan adalah struktur data linier, tumpukan adalah struktur data tidak linier. Stack adalah senarai teratur yang mengikuti harta LIFO, sementara timbunannya adalah pokok lengkap yang mengikuti harta tumpukan. Tambahan pula, timbunan adalah struktur data yang terhad yang hanya menyokong bilangan operasi yang terhad seperti push and pop, manakala timbunan menyokong pelbagai operasi seperti mencari dan memotong minimum atau maksimum, meningkatkan atau mengurangkan kunci dan penggabungan.