Stack adalah struktur data yang beroperasi berdasarkan teknik LIFO (Last In First Out). Std::stack memungkinkan elemen ditambahkan dan dihapus dari satu ujung saja.
Kelas std::stack adalah adaptor kontainer. Objek kontainer menyimpan data dari tipe data yang serupa. Anda dapat membuat tumpukan dari berbagai wadah urutan. Jika tidak ada wadah yang disediakan, wadah deque akan digunakan secara default. Adaptor kontainer tidak mendukung iterator, sehingga tidak dapat digunakan untuk memanipulasi data.
Dalam tutorial C++ ini, Anda akan belajar
Apa itu std::stack?
Sintaksis Tumpukan
Jenis Anggota
Operasi dalam Tumpukan
Implementasi Tumpukan
push() dan pop()
kosong(), ukuran(), atas()
emplase() dan swap()
Stack di STL
Sintaksis Tumpukan
Untuk membuat tumpukan, kita harus menyertakan file header dalam kode kita. Kami kemudian menggunakan sintaks ini untuk mendefinisikan std::stack:
template <class Type, class Container = deque<Type> > class stack;
Jenis – adalah Jenis elemen yang terkandung dalam std::stack. Ini bisa berupa tipe C++ yang valid atau bahkan tipe yang ditentukan pengguna.
Wadah – adalah Jenis objek kontainer yang mendasarinya.
Jenis Anggota
Berikut adalah jenis anggota tumpukan:
value_type- Parameter template pertama, T. Ini menunjukkan tipe elemen.
container_type- Parameter template kedua, Container. Ini menunjukkan jenis wadah yang mendasarinya.
size_type- Tipe integral tak bertanda.
Operasi di Stack
Tumpukan C++ mendukung operasi dasar berikut:
push – Menambahkan/mendorong item ke dalam tumpukan.
pop – Menghapus/memunculkan item dari tumpukan.
mengintip – Mengembalikan item teratas dari tumpukan tanpa menghapusnya.
isFull – Memeriksa apakah tumpukan penuh.
isEmpty – Memeriksa apakah tumpukan kosong.
Implementasi Tumpukan
Langkah 1) Kami awalnya memiliki tumpukan kosong. Bagian atas tumpukan kosong diatur ke -1.
Langkah 2) Selanjutnya, kami telah mendorong elemen 5 ke dalam tumpukan. Bagian atas tumpukan akan menunjuk ke elemen 5.
Langkah 3) Selanjutnya, kami telah mendorong elemen 50 ke dalam tumpukan. Bagian atas tumpukan bergeser dan menunjuk ke elemen 50.
Langkah 4) Kami kemudian telah melakukan operasi pop, menghapus elemen teratas dari tumpukan. Elemen 50 muncul dari tumpukan. Bagian atas tumpukan sekarang menunjuk ke elemen 5.
push() dan pop()
Fungsi stack::push() menambahkan item baru ke bagian atas tumpukan. Ukuran tumpukan bertambah 1 setelah penyisipan. Fungsi menggunakan sintaks ini:
stack.push(value)
Nilai adalah item yang akan dimasukkan ke dalam tumpukan.
Fungsi stack::pop() menghapus elemen teratas dari stack. Ini adalah item terbaru dari tumpukan. Ukuran tumpukan dikurangi 1 setelah penghapusan. Berikut sintaks fungsinya:
stack.pop()
Fungsi tidak mengambil parameter.
Contoh 1:
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> st;
st.push(10);
st.push(20);
st.push(30);
st.push(40);
st.pop();
st.pop();
while (!st.empty()) {
cout << ' ' << st.top();
st.pop();
}
}
Keluaran:
Berikut adalah screenshot kodenya:
Penjelasan Kode:
Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
Buat tumpukan st untuk menyimpan nilai integer.
Gunakan fungsi push() untuk memasukkan nilai 10 ke dalam tumpukan.
Gunakan fungsi push() untuk memasukkan nilai 20 ke dalam tumpukan.
Gunakan fungsi push() untuk memasukkan nilai 30 ke dalam tumpukan.
Gunakan fungsi push() untuk memasukkan nilai 40 ke dalam tumpukan.
Gunakan fungsi pop() untuk menghapus elemen teratas dari tumpukan, yaitu 40. Elemen teratas sekarang menjadi 30.
Gunakan fungsi pop() untuk menghapus elemen teratas dari tumpukan, yaitu 30. Elemen teratas sekarang menjadi 20.
Gunakan fungsi while loop dan empty() untuk memeriksa apakah tumpukan TIDAK kosong. ! adalah operator NOT.
Mencetak konten tumpukan saat ini di konsol.
Panggil fungsi pop() pada tumpukan.
Akhir dari badan perulangan while.
Akhir dari badan fungsi main().
kosong(), ukuran(), atas()
Tumpukan memiliki fungsi bawaan yang dapat Anda gunakan untuk bermain-main dengan tumpukan dan nilainya. Ini termasuk:
kosong()- memeriksa apakah tumpukan kosong atau tidak.
size()- mengembalikan ukuran tumpukan, yaitu jumlah elemen dalam tumpukan.
Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
Sertakan file header cstdlib dalam kode kita untuk menggunakan fungsinya.
Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
Panggil fungsi main(). Logika program akan ditambahkan di dalam isi fungsi ini.
Deklarasikan tumpukan bernama st1 untuk menyimpan nilai integer.
Deklarasikan tumpukan bernama st2 untuk menyimpan nilai integer.
Gunakan fungsi emplace() untuk memasukkan bilangan bulat 12 ke dalam tumpukan bernama st1.
Gunakan fungsi emplace() untuk memasukkan bilangan bulat 19 ke dalam tumpukan bernama st1.
Gunakan fungsi emplace() untuk memasukkan bilangan bulat 20 ke dalam tumpukan bernama st2.
Gunakan fungsi emplace() untuk menyisipkan bilangan bulat 23 ke dalam tumpukan bernama st2.
Gunakan fungsi swap() untuk menukar isi dari dua tumpukan, st1 dan st2. Isi tumpukan st1 harus dipindahkan ke tumpukan st2. Isi tumpukan st2 harus dipindahkan ke tumpukan st1.
Cetak beberapa teks di konsol.
Gunakan pernyataan while dan fungsi empty() untuk memeriksa apakah stack st1 tidak kosong.
Cetak isi tumpukan st1 di konsol. ” ” menambahkan ruang di antara elemen tumpukan saat mencetaknya di konsol.
Jalankan fungsi pop() pada tumpukan st1 untuk menghapus elemen teratas.
Akhir dari isi pernyataan while.
Cetak beberapa teks di konsol. Endl adalah kata kunci C++ untuk baris akhir. Ini memindahkan kursor mouse ke baris berikutnya untuk mulai mencetak dari sana.
Gunakan pernyataan while dan fungsi empty() untuk memeriksa apakah stack st2 tidak kosong.
Cetak isi tumpukan st2 di konsol. ” ” menambahkan ruang di antara elemen tumpukan saat mencetaknya di konsol.
Jalankan fungsi pop() pada stack st2 untuk menghapus elemen teratas.
Akhir dari isi pernyataan while.
Akhir dari isi fungsi main().
Stack di STL
STL (Standard Template Library) hadir dengan kelas template yang menyediakan struktur data C++ umum. Oleh karena itu, tumpukan juga dapat diimplementasikan di STL. Kami cukup menyertakan perpustakaan ini dalam kode kami dan menggunakannya untuk mendefinisikan tumpukan.
stack<T> st;
Sintaks di atas mendeklarasikan stack st ke elemen tipe data T.