Apa perbedaan mendasar antara tumpukan dan antrian ??
Tolong bantu saya, saya tidak dapat menemukan perbedaannya.
Bagaimana Anda membedakan tumpukan dan antrian?
Saya mencari jawabannya di berbagai tautan dan menemukan jawaban ini ..
Dalam pemrograman tingkat tinggi,
tumpukan didefinisikan sebagai daftar atau urutan elemen yang diperpanjang dengan menempatkan elemen baru "di atas" elemen yang ada dan disingkat dengan menghapus elemen dari bagian atas elemen yang ada. Ini adalah [Jenis Data Abstrak] ADT dengan operasi matematika "push" dan "pop".
Antrian adalah urutan elemen yang ditambahkan dengan menempatkan elemen baru di belakang yang sudah ada dan disingkat dengan menghapus elemen di depan antrian. Ini adalah ADT [Tipe Data Abstrak]. Ada lebih banyak istilah-istilah ini dipahami dalam pemrograman Java, C ++, Python dan sebagainya.
Bisakah saya mendapat jawaban yang lebih detail? Tolong bantu aku.
Jawaban:
Stack adalah struktur data LIFO (terakhir masuk pertama keluar). Tautan terkait ke wikipedia berisi deskripsi dan contoh terperinci.
Antrian adalah struktur data FIFO (pertama masuk pertama keluar). Tautan terkait ke wikipedia berisi deskripsi dan contoh terperinci.
sumber
Bayangkan setumpuk kertas . Potongan terakhir yang dimasukkan ke tumpukan ada di atas, jadi itu yang pertama keluar. Ini LIFO . Menambahkan selembar kertas disebut "mendorong", dan mengeluarkan selembar kertas disebut "popping".
Bayangkan antrian di toko . Orang pertama dalam barisan adalah orang pertama yang keluar dari barisan. Ini FIFO . Seseorang yang masuk antrean "enqueued", dan seseorang yang keluar dari antrean "dequeued".
sumber
Model Visual
Pancake Stack (LIFO)
Satu-satunya cara untuk menambahkan satu dan / atau menghapus satu adalah dari atas.
Antrean Garis (FIFO)
Ketika seseorang tiba, mereka tiba di ujung antrian dan ketika seseorang pergi, mereka pergi dari depan antrian.
Fakta menyenangkan: orang Inggris menyebut barisan orang sebagai Antrian
sumber
Anda dapat menganggap keduanya sebagai daftar barang yang dipesan (dipesan pada saat barang ditambahkan ke dalam daftar). Perbedaan utama antara keduanya adalah bagaimana elemen baru masuk daftar dan elemen lama meninggalkan daftar.
Untuk tumpukan, jika saya punya daftar
a, b, c
, dan saya tambahkand
, itu akan ditempel di ujungnya, jadi saya berakhir dengana,b,c,d
. Jika saya ingin memunculkan elemen daftar, saya menghapus elemen terakhir yang saya tambahkan, yaitud
. Setelah muncul, daftar saya sekaranga,b,c
kembaliUntuk antrian, saya menambahkan elemen baru dengan cara yang sama.
a,b,c
menjadia,b,c,d
setelah menambahkand
. Tapi, sekarang ketika saya muncul, saya harus mengambil elemen dari depan daftar, jadi itu menjadib,c,d
.Sangat sederhana!
sumber
Antre
Antrian adalah koleksi barang yang dipesan.
Item dihapus di salah satu ujung yang disebut 'depan' ujung antrian.
Item dimasukkan di ujung lain yang disebut 'belakang' dari antrian.
Item pertama yang dimasukkan adalah yang pertama kali dihapus (FIFO).
Tumpukan
Stack adalah koleksi barang.
Ini memungkinkan akses ke hanya satu item data: item terakhir dimasukkan.
Item dimasukkan & dihapus di satu ujung yang disebut 'Top of the stack'.
Ini adalah objek yang dinamis & terus berubah.
Semua item data diletakkan di atas tumpukan dan diambil dari atas
Struktur pengaksesan ini dikenal sebagai struktur Last in First out (LIFO)
sumber
TUMPUKAN:
ANTRE:
sumber
Tumpukan adalah kumpulan elemen, yang dapat disimpan dan diambil satu per satu. Elemen diambil secara terbalik dari waktu penyimpanannya, yaitu elemen terakhir yang disimpan adalah elemen berikutnya yang akan diambil. Tumpukan kadang-kadang disebut sebagai struktur Last-In-First-Out-Out (LIFO) atau First-In-Last-Out (FILO). Elemen yang disimpan sebelumnya tidak dapat diambil sampai elemen terakhir (biasanya disebut sebagai elemen 'atas') telah diambil.
Antrian adalah kumpulan elemen, yang dapat disimpan dan diambil satu per satu. Elemen diambil sesuai urutan waktu penyimpanannya, yaitu elemen pertama yang disimpan adalah elemen berikutnya yang akan diambil. Antrian kadang-kadang disebut sebagai struktur First-In-First-Out (FIFO) atau Last-In-Last-Out (LILO). Elemen-elemen yang selanjutnya disimpan tidak dapat diambil sampai elemen pertama (biasanya disebut sebagai elemen 'depan') telah diambil.
sumber
STACK: Stack didefinisikan sebagai daftar elemen di mana kita dapat menyisipkan atau menghapus elemen hanya di bagian atas tumpukan
Stack digunakan untuk melewatkan parameter antar fungsi. Pada panggilan ke suatu fungsi, parameter dan variabel lokal disimpan di tumpukan.
Tumpukan adalah kumpulan elemen, yang dapat disimpan dan diambil satu per satu. Elemen diambil secara terbalik dari waktu penyimpanannya, yaitu elemen terakhir yang disimpan adalah elemen berikutnya yang akan diambil. Tumpukan kadang-kadang disebut sebagai struktur Last-In-First-Out-Out (LIFO) atau First-In-Last-Out (FILO). Elemen yang disimpan sebelumnya tidak dapat diambil sampai elemen terakhir (biasanya disebut sebagai elemen 'atas') telah diambil.
ANTRE:
Antrian adalah kumpulan dari jenis elemen yang sama. Ini adalah daftar linier di mana penyisipan dapat terjadi di salah satu ujung daftar, disebut bagian belakang daftar, dan penghapusan hanya dapat dilakukan di ujung lainnya, yang disebut bagian depan daftar
Antrian adalah kumpulan elemen, yang dapat disimpan dan diambil satu per satu. Elemen diambil sesuai urutan waktu penyimpanannya, yaitu elemen pertama yang disimpan adalah elemen berikutnya yang akan diambil. Antrian kadang-kadang disebut sebagai struktur First-In-First-Out (FIFO) atau Last-In-Last-Out (LILO). Elemen-elemen yang selanjutnya disimpan tidak dapat diambil sampai elemen pertama (biasanya disebut sebagai elemen 'depan') telah diambil.
sumber
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
saat dengan antrian
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!
sumber
STACK adalah daftar LIFO (terakhir masuk, keluar pertama). artinya misalkan 3 elemen dimasukkan dalam stack yaitu 10,20,30. 10 dimasukkan pertama & 30 dimasukkan terakhir sehingga 30 pertama dihapus dari tumpukan & 10 terakhir dihapus dari tumpukan. Ini adalah daftar LIFO (Last In First Out).
QUEUE adalah daftar FIFO (First In First Out). Berarti satu elemen dimasukkan terlebih dahulu yang akan dihapus terlebih dahulu.
sumber
Tumpukan yang dianggap sebagai koleksi vertikal. Pertama mengerti bahwa koleksi adalah OBYEK yang mengumpulkan dan mengorganisir OBYEK kecil lainnya. OBYEK-OBYEK kecil ini biasanya disebut sebagai Elemen. Elemen-elemen ini "Dorong" pada tumpukan dalam urutan ABC di mana A adalah yang pertama dan C yang terakhir. secara vertikal akan terlihat seperti ini: elemen ke-3 ditambahkan) elemen ke-2 ditambahkan) elemen ke-1 ditambahkan) A
Perhatikan bahwa "A" yang pertama kali ditambahkan ke tumpukan ada di bagian bawah. Jika Anda ingin menghapus "A" dari tumpukan pertama-tama Anda harus menghapus "C", lalu "B", dan akhirnya elemen target Anda "A". Tumpukan memerlukan pendekatan LIFO saat berurusan dengan kompleksitas tumpukan. (Last In First Out) Ketika menghapus elemen dari tumpukan, sintaks yang benar adalah pop. kami tidak menghapus elemen dari tumpukan yang kami "lepaskan".
Ingatlah bahwa "A" adalah elemen pertama yang didorong ke tumpukan dan "C" adalah item terakhir yang didorong pada tumpukan. Jika Anda memutuskan bahwa Anda ingin melihat apa yang ada di bagian bawah tumpukan, karena 3 elemen ada di tumpukan yang dipesan A menjadi B pertama adalah yang kedua dan C menjadi elemen ketiga, bagian atas harus dibuka kemudian elemen kedua ditambahkan untuk melihat bagian bawah tumpukan.
sumber