Untuk mencoba dan menyederhanakan deskripsi tumpukan dan antrian, Mereka adalah rantai dinamis elemen informasi yang dapat diakses dari satu ujung rantai dan satu-satunya perbedaan nyata di antara mereka adalah kenyataan bahwa:
saat bekerja dengan tumpukan
- Anda memasukkan elemen di salah satu ujung rantai dan
- Anda mengambil dan / atau menghapus elemen dari ujung rantai yang sama
saat dengan antrian
- Anda memasukkan elemen di salah satu ujung rantai dan
- Anda mengambil / menghapusnya dari ujung yang lain
CATATAN : Saya menggunakan kata-kata abstrak dari mengambil / menghapus dalam konteks ini karena ada contoh ketika Anda hanya mengambil elemen dari rantai atau dalam arti hanya membacanya atau mengakses nilainya, tetapi ada juga contoh ketika Anda menghapus elemen dari rantai dan akhirnya ada contoh ketika Anda melakukan kedua tindakan dengan panggilan yang sama.
Elemen kata juga sengaja digunakan untuk abstrak rantai imajiner sebanyak mungkin dan memisahkannya dari istilah bahasa pemrograman tertentu. Entitas informasi abstrak yang disebut elemen ini bisa apa saja, dari penunjuk, nilai, string atau karakter, objek, ... tergantung pada bahasanya.
Dalam kebanyakan kasus, meskipun itu sebenarnya nilai atau lokasi memori (yaitu pointer). Dan sisanya hanya menyembunyikan fakta ini di balik jargon bahasa <
Antrian dapat membantu ketika urutan elemen penting dan perlu persis sama seperti ketika elemen pertama kali masuk ke program Anda. Misalnya ketika Anda memproses aliran audio atau ketika Anda menyangga data jaringan. Atau ketika Anda melakukan semua jenis toko dan pemrosesan selanjutnya. Dalam semua kasus ini Anda perlu urutan elemen yang akan dihasilkan dalam urutan yang sama ketika mereka masuk ke program Anda, jika tidak, informasi mungkin berhenti masuk akal. Jadi, Anda dapat memecah program Anda di bagian yang membaca data dari beberapa input, melakukan beberapa pemrosesan dan menulisnya dalam antrian dan bagian yang mengambil data dari antrian memprosesnya dan menyimpannya dalam antrian lain untuk diproses lebih lanjut atau mentransmisikan data .
Tumpukan dapat membantu ketika Anda perlu untuk sementara menyimpan elemen yang akan digunakan dalam langkah langsung dari program Anda. Misalnya, bahasa pemrograman biasanya menggunakan struktur stack untuk meneruskan variabel ke fungsi. Apa yang sebenarnya mereka lakukan adalah menyimpan (atau mendorong) argumen fungsi di stack dan kemudian melompat ke fungsi di mana mereka menghapus dan mengambil (atau pop) jumlah elemen yang sama dari stack. Dengan cara itu ukuran tumpukan bergantung pada jumlah panggilan fungsi yang disarangkan. Selain itu, setelah fungsi dipanggil dan selesai apa yang dilakukannya, ia meninggalkan tumpukan dalam kondisi yang sama persis seperti sebelum dipanggil! Dengan begitu fungsi apa pun dapat beroperasi dengan tumpukan mengabaikan bagaimana fungsi lain beroperasi dengannya.
Terakhir, Anda harus tahu bahwa ada istilah lain yang digunakan di luar sana untuk konsep yang sama. Misalnya tumpukan bisa disebut tumpukan. Ada juga versi hibrida dari konsep-konsep ini, misalnya antrian ujung ganda dapat berperilaku pada saat yang sama sebagai tumpukan dan sebagai antrian, karena dapat diakses oleh kedua ujungnya secara bersamaan. Selain itu, fakta bahwa struktur data disediakan untuk Anda sebagai tumpukan atau sebagai antrian, itu tidak berarti bahwa itu diimplementasikan seperti itu, ada contoh di mana struktur data dapat diimplementasikan sebagai apa saja dan diberikan sebagai spesifik struktur data hanya karena dapat dibuat berperilaku seperti itu. Dengan kata lain, jika Anda memberikan metode push dan pop ke struktur data apa pun, mereka secara ajaib menjadi tumpukan!