Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Tumpuk di C++ STL dengan Contoh

Apa itu std::stack?

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

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 Anggota

Berikut adalah jenis anggota tumpukan:

Operasi di Stack

Tumpukan C++ mendukung operasi dasar berikut:

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:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  4. Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
  5. Buat tumpukan st untuk menyimpan nilai integer.
  6. Gunakan fungsi push() untuk memasukkan nilai 10 ke dalam tumpukan.
  7. Gunakan fungsi push() untuk memasukkan nilai 20 ke dalam tumpukan.
  8. Gunakan fungsi push() untuk memasukkan nilai 30 ke dalam tumpukan.
  9. Gunakan fungsi push() untuk memasukkan nilai 40 ke dalam tumpukan.
  10. Gunakan fungsi pop() untuk menghapus elemen teratas dari tumpukan, yaitu 40. Elemen teratas sekarang menjadi 30.
  11. Gunakan fungsi pop() untuk menghapus elemen teratas dari tumpukan, yaitu 30. Elemen teratas sekarang menjadi 20.
  12. Gunakan fungsi while loop dan empty() untuk memeriksa apakah tumpukan TIDAK kosong. ! adalah operator NOT.
  13. Mencetak konten tumpukan saat ini di konsol.
  14. Panggil fungsi pop() pada tumpukan.
  15. Akhir dari badan perulangan while.
  16. 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:

Contoh 2:

#include <iostream> 
#include <stack>  
using namespace std;
void createStack(stack <int> mystack)
{
	stack <int> ms = mystack;
	while (!ms.empty())
	{
		cout << '\t' << ms.top();
		ms.pop();
	}
	cout << '\n';
}
int main()
{
	stack <int> st;
	st.push(32);
	st.push(21);
	st.push(39);
	st.push(89);
	st.push(25);

	cout << "The stack st is: ";
	createStack(st);
	cout << "\n st.size() : " << st.size();
	cout << "\n st.top() : " << st.top();
	cout << "\n st.pop() : ";
	st.pop();
	createStack(st);
	return 0;
}

Keluaran:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan ruang nama std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  4. Buat fungsi createStack yang bisa kita gunakan untuk membuat stack mystack. Tumpukan akan menampung satu set bilangan bulat.
  5. Awal isi fungsi createStack.
  6. Buat instance tipe data mystack dan beri nama ms.
  7. Gunakan loop while dan fungsi empty() untuk memeriksa apakah tumpukan kosong.
  8. Awal dari body loop while.
  9. Gunakan fungsi top() yang disimpan di bagian atas tumpukan. Karakter \t akan membuat tab baru.
  10. Gunakan fungsi pop() untuk menghapus elemen di bagian atas tumpukan.
  11. Akhir dari badan perulangan while.
  12. Cetak baris kosong di konsol.
  13. Akhir dari isi fungsi createStack.
  14. Panggil fungsi main(). Logika program harus ditambahkan di dalam tubuh fungsi main().
  15. Awal dari isi fungsi main().
  16. Buat objek tumpukan st.
  17. Gunakan fungsi push() untuk memasukkan elemen 32 ke dalam tumpukan.
  18. Gunakan fungsi push() untuk memasukkan elemen 21 ke dalam tumpukan.
  19. Gunakan fungsi push() untuk memasukkan elemen 39 ke dalam tumpukan.
  20. Gunakan fungsi push() untuk memasukkan elemen 89 ke dalam tumpukan.
  21. Gunakan fungsi push() untuk memasukkan elemen 25 ke dalam tumpukan.
  22. Cetak beberapa teks di konsol.
  23. Panggil fungsi createStack untuk menjalankan operasi penyisipan di atas ke dalam tumpukan.
  24. Cetak ukuran tumpukan di konsol bersama teks lainnya.
  25. Cetak elemen di bagian atas tumpukan di konsol.
  26. Cetak beberapa teks di konsol.
  27. Hapus elemen di bagian atas tumpukan. Ini kemudian akan mengembalikan elemen yang tersisa di tumpukan.
  28. Panggil fungsi createStack untuk menjalankan operasi di atas.
  29. Program harus mengembalikan nilai setelah berhasil diselesaikan.
  30. Akhir dari isi fungsi main().

emplase() dan swap()

Ini adalah fungsi tumpukan bawaan lainnya:

Contoh 3:

#include <iostream>    
#include <stack>
#include <cstdlib>
using namespace std;
int main() {
	stack<int> st1;
	stack<int> st2;

	st1.emplace(12);
	st1.emplace(19);

	st2.emplace(20);
	st2.emplace(23);

	st1.swap(st2);

	cout << "st1 = ";
	while (!st1.empty()) {
		cout << st1.top() << " ";
		st1.pop();
	}

	cout << endl << "st2 = ";
	while (!st2.empty()) {
		cout << st2.top() << " ";
		st2.pop();
	}
}

Keluaran:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan file header cstdlib dalam kode kita untuk menggunakan fungsinya.
  4. Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Panggil fungsi main(). Logika program akan ditambahkan di dalam isi fungsi ini.
  6. Deklarasikan tumpukan bernama st1 untuk menyimpan nilai integer.
  7. Deklarasikan tumpukan bernama st2 untuk menyimpan nilai integer.
  8. Gunakan fungsi emplace() untuk memasukkan bilangan bulat 12 ke dalam tumpukan bernama st1.
  9. Gunakan fungsi emplace() untuk memasukkan bilangan bulat 19 ke dalam tumpukan bernama st1.
  10. Gunakan fungsi emplace() untuk memasukkan bilangan bulat 20 ke dalam tumpukan bernama st2.
  11. Gunakan fungsi emplace() untuk menyisipkan bilangan bulat 23 ke dalam tumpukan bernama st2.
  12. 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.
  13. Cetak beberapa teks di konsol.
  14. Gunakan pernyataan while dan fungsi empty() untuk memeriksa apakah stack st1 tidak kosong.
  15. Cetak isi tumpukan st1 di konsol. ” ” menambahkan ruang di antara elemen tumpukan saat mencetaknya di konsol.
  16. Jalankan fungsi pop() pada tumpukan st1 untuk menghapus elemen teratas.
  17. Akhir dari isi pernyataan while.
  18. 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.
  19. Gunakan pernyataan while dan fungsi empty() untuk memeriksa apakah stack st2 tidak kosong.
  20. Cetak isi tumpukan st2 di konsol. ” ” menambahkan ruang di antara elemen tumpukan saat mencetaknya di konsol.
  21. Jalankan fungsi pop() pada stack st2 untuk menghapus elemen teratas.
  22. Akhir dari isi pernyataan while.
  23. 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.

Contoh 3:

#include <iostream>      
#include <stack>
#include <cstdlib>
using namespace std;
int main() {
	stack<int> st;
	st.push(12);
	st.push(19);
	st.push(20);
	cout << st.top();   
	cout << st.size();  
}

Keluaran:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header tumpukan dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan file header cstdlib dalam kode kita untuk menggunakan fungsinya.
  4. Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  5. Panggil fungsi main(). Logika program harus ditambahkan di dalam isi fungsi ini.
  6. Deklarasikan stack st untuk menyimpan data integer.
  7. Tambahkan elemen 12 ke tumpukan.
  8. Tambahkan elemen 19 ke tumpukan.
  9. Tambahkan elemen 20 ke tumpukan.
  10. Cetak elemen di bagian atas tumpukan di konsol.
  11. Cetak ukuran tumpukan di konsol.
  12. Akhir dari isi fungsi main().

Ringkasan:


Bahasa C

  1. Operator di C++ dengan Contoh:Apa itu, Jenis dan Program
  2. C++ do… while loop dengan Contoh
  3. C++ Switch Case Statement dengan CONTOH
  4. C++ Alokasi Dinamis Array dengan Contoh
  5. C++ Pointer dengan Contoh
  6. Operator C++ Overloading dengan Contoh
  7. Struktur C++ Dengan Contoh
  8. Peta di C++ Standard Template Library (STL) dengan Contoh Cetak
  9. std::daftar di C++ dengan Contoh
  10. Fungsi C++ dengan Contoh Program