C ++ Antrian: Panduan Lengkap – Codewithaden

Antrian adalah struktur data abstrak yang mengikuti algoritma FIFO, yaitu, item data yang dimasukkan ke dalam antrian akan diakses terlebih dahulu. Antrian terbuka di kedua ujungnya, tidak seperti tumpukan di satu ujung.

Queues

C ++ Antre

Antre di C ++ adalah adaptor kontainer yang dirancang khusus untuk beroperasi dalam konteks FIFO (pertama-dalam-pertama), di mana elemen dimasukkan ke dalam salah satu ujung wadah dan diekstraksi dari yang lain.

Antrian diimplementasikan sebagai adaptor kontainer, yang merupakan kelas yang menggunakan objek yang dienkapsulasi dari kelas kontainer sebagai wadah yang mendasarinya, menyediakan set fungsi anggota tertentu untuk mengakses itemnya.

Elemen didorong ke “punggung” dari wadah spesifik dan muncul dari “depan”. Jadi, misalnya, kami dapat membuat antrian di C ++ dengan sintaks berikut.

queuequeue_name 

Misalnya antrian antrian1;

Penting juga untuk menambahkan file header #include

Elemen dalam antrian dimasukkan di ujung belakang dan dihapus dari ujung depan.

Di STL, ada banyak fungsi yang didukung oleh antrian. beberapa dari mereka terdaftar di bawah ini.

Itu fungsi Didukung oleh antrian adalah sebagai berikut.

kosong()

Fungsi kosong digunakan untuk memeriksa apakah antriannya kosong.

Sintaksis:

queue_name.empty() 

Fungsi kosong () mengembalikan true jika antrian kosong atau salah jika daftar tidak kosong.

Catatan: Tidak ada parameter yang dilewati dalam fungsi kosong. Jika kami memberikan parameter apa pun, itu akan menunjukkan kesalahan.

ukuran()

Fungsi ukuran () digunakan untuk menemukan ukuran antrian.

Sintaksis:

queue_name.size() 

Fungsi size () mengembalikan beberapa elemen yang ada dalam antrian.

Catatan: Tidak ada parameter yang dilewati dalam fungsi ukuran. Jika kami memberikan parameter apa pun, itu akan menunjukkan kesalahan.

menukar()

Fungsi swap () digunakan untuk menukar elemen dua antrian berbeda dari jenis yang sama.

Sintaksis:

queue_name1.swap(queue_name2) 

Tidak ada nilai pengembalian. Operasi menukar elemen queue_name1 ke queue_name2.

Catatan: Sangat penting untuk memiliki antrian dengan panjang jenis antrian yang sama dapat bervariasi.

menempatkan()

Fungsi emplace digunakan untuk memasukkan elemen baru dalam antrian.

Sintaksis:

queue_name.emplace(value) 

Parameter nilai memegang nilai elemen yang ingin kami tambahkan ke antrian.

Elemen ditambahkan di bagian belakang antrian.

Catatan: Penting untuk memiliki parameter nilai dari jenis elemen yang sama yang sudah ada dalam antrian.

depan()

Fungsi depan mengakses elemen tertua dalam antrian atau elemen di ujung depan. Saat antrian mengikuti, pertama datang, pertama, ia mengakses elemen pertama.

Sintaksis:

queue_name.front() 

Tidak ada parameter di fungsi depan.

Catatan: Jika antrian kosong, fungsi depan menunjukkan perilaku yang tidak ditentukan.

kembali()

Fungsi belakang mengambil elemen pertama dari ujung belakang penyisipan kemudian dalam antrian.

Sintaksis

queue_name.back() 

Tidak ada parameter di fungsi belakang.

Catatan: Jika antrian kosong, fungsi depan menunjukkan perilaku yang tidak ditentukan.

dorongan()

Fungsi push () menyisipkan item dalam antrian dari ujung belakang.

Sintaksis:

queue_name.push(value) 

Parameter dalam fungsi push adalah nilai yang ingin kita dorong dalam antrian.

Catatan: Penting untuk memiliki jenis nilai yang sama dengan elemen yang sudah ada.

pop ()

Fungsi pop digunakan untuk menghapus elemen dari antrian.

Sintaksis:

queue.name.pop() 

Ini menghilangkan elemen tertua yang ada dalam antrian elemen depan antrian.

Catatan: Ini akan menunjukkan kesalahan jika parameter dilewatkan dalam fungsi pop.

Contoh antrian di STL

Tulis program untuk memasukkan tiga elemen dalam antrian menggunakan fungsi EMPLASE dan periksa apakah antriannya kosong. Kemudian, cetak string untuk ditampilkan jika antrian kosong atau tidak.

#include 
#include 
using namespace std;
int main()
{
  queue queue1;
  queue1.emplace(1);
  queue1.emplace(2);
  queue1.emplace(3);

  if (queue1.empty())
  {
    cout << "The queue is empty";
  }
  else
  {
    cout << "The queue is not empty";
  }
  return 0;
} 

Lihat output berikut.

Queues

Contoh2: Tulis program untuk menambahkan lima elemen dalam antrian menggunakan fungsi push (), hapus satu elemen menggunakan fungsi pop (), dan cetak antrian sesudahnya.

#include 
#include 
using namespace std;

int main()
{
  queue queue2;
  queue2.push(0);
  queue2.push(1);
  queue2.push(2);
  queue2.push(3);
  queue2.push(4);
  // queue has element 0,1,2,3,4

  queue2.pop();

  // after poping one element queue becomes 0,1,2,3

  // Printing queue elements
  cout << "Elements of the queue are:";
  while (!queue2.empty())
  {
    cout << ' ' << queue2.front();
    queue2.pop();
  }
} 

Lihat output berikut.

Examples

Contoh3: Tulis program untuk mencetak ukuran antrian, elemen depan antrian, dan elemen belakang antrian.

#include  
#include  
using namespace std; 
  
int main() 
{ 
    queue queue3; 
    queue3.push(0); 
    queue3.push(1); 
    queue3.push(2);
	queue3.push(3);
	queue3.push(4);
	
	cout<<"Size of the queue is: "<

Lihat output berikut.

C++

Contoh4: Buat dua antrian, tambahkan elemen ke kedua antrian, bertukar antrian, dan cetak antrian yang ditukar.

#include 
#include 
using namespace std;

int main()
{
  queue queue2;
  queue queue1;
  queue1.push(0);
  queue1.push(1);
  queue1.push(2);
  queue1.push(3);
  queue1.push(4);

  queue2.push(5);
  queue2.push(6);
  queue2.push(7);
  queue2.push(8);
  queue2.push(9);

  queue1.swap(queue2); //Swapping

  cout << "Elements of queue1 after swapping are:";
  while (!queue1.empty())
  {
    cout << queue1.front() << " ";
    queue1.pop();
  }

  // Print the second set
  cout << endl
       << "Elements of queue2 after swapping are:";
  while (!queue2.empty())
  {
    cout << queue2.front() << " ";
    queue2.pop();
  }

  return 0;
} 

Lihat outputnya.

Standard

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *