Tumpukan
Pelajaran 10 dari 23 dalam kursus C++ - Standard Template Library di Coddy.
Di bab ini kamu akan mempelajari adaptor kontainer. Adaptor yang akan kamu pelajari adalah stack, queue, dan priority-queue.
Stack C++ adalah struktur data yang didasarkan pada prinsip LIFO (Masuk Terakhir, Keluar Pertama) . Artinya, elemen yang terakhir ditambahkan ke struktur data stack akan dihapus lebih dahulu, sedangkan elemen pertama yang ditambahkan ke stack dapat diakses paling akhir. (Ini sangat mirip dengan menumpuk piring atau panekuk. Saat kamu menumpuk piring, kamu tidak bisa mengambil piring yang berada di bagian bawah dan ditambahkan pertama kali. Kamu perlu mengambil piring terakhir yang berada di bagian atas.)

stack<dataType> stackName;Untuk membuat stack di C++, pertama-tama kita perlu menyertakan file header stack di bagian atas file C++ dengan #include <stack>.
Kemudian kita bisa mendeklarasikan variabel stack seperti yang ditunjukkan di bawah ini.
stack<int> number_stack = {1, 2, 3};Jadi, bagaimana cara menambahkan elemen ke stack? Kita menggunakan method push().
stack<int> number_stack;
number_stack.push(1);
number_stack.push(2);
...Dengan cara ini, kita bisa menambahkan elemen baru ke stack.
Kita juga perlu menampilkan elemen di layar. Kita melakukannya dengan menggunakan method top(), yang mengembalikan nilai terakhir di bagian atas stack.
cout << number_stack.top();Output:
2Namun, jika sekarang kita terus menampilkan top() di layar, kita akan terus mendapatkan elemen terakhir, dalam hal ini 2. Jadi, kita memerlukan method untuk menghapus elemen dari bagian atas. Untuk itu, kita menggunakan method pop(), yang menghapus elemen terakhir di bagian atas stack.
cout << number_stack.top() << endl;
number_stack.pop();
cout << number_stack.top();Output:
2
1Kesimpulannya, struktur data stack sangat berguna di C++, dalam pemrograman, dan secara umum dalam pemrograman kompetitif. Komponen utamanya adalah prinsip Masuk Terakhir, Keluar Pertama.
Method Stack
| Method | Fungsi |
size() | Mengembalikan jumlah elemen dalam stack |
empty() | Mengembalikan true jika stack kosong, dan false jika tidak |
swap() | Menukar isi satu stack dengan stack lainnya |
Tantangan
MudahKamu diberi sebuah angka N dari input. Pada N baris berikutnya, ada satu angka di setiap baris.
Dengan menggunakan stack, keluarkan setiap angka yang dimasukkan, dimulai dari angka terakhir dan bergerak mundur.
Input
5
1
2
3
4
5Output
5
4
3
2
1Coba sendiri
#include <stack>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}Semua pelajaran di C++ - Standard Template Library
Latihan sendiri: Compiler C++ online