Bagaimana Menerapkan Antrian Prioritas di C ++



Artikel ini akan memberi Anda pengetahuan mendetail dan komprehensif tentang cara menerapkan antrean prioritas di C ++ dengan contoh.

Antrian prioritas adalah wadah di STL. Ini mirip dengan antrian kecuali fakta bahwa setiap elemen dari antrian prioritas memiliki prioritas tertentu dan ketika kita memunculkan elemen dari antrian prioritas, elemen dengan prioritas tertinggi akan muncul terlebih dahulu. Seperti antrian prioritas, ada 10 jenis kontainer yang berbeda STL . Wadah adalah objek yang menyimpan data. Kontainer STL diimplementasikan dengan bantuan kelas template sehingga mudah menyesuaikannya untuk menampung berbagai jenis data. Dalam posting ini, kita akan membahas antrian Prioritas dan konsep yang terkait dengannya secara rinci. Petunjuk berikut akan dibahas dalam Antrean Prioritas di artikel C ++,

Pindah dengan artikel ini tentang Antrian Prioritas di C ++





Komponen STL

STL terdiri dari kelas template dan fungsi yang dapat digunakan sebagai pendekatan standar untuk menyimpan dan memproses data. Mari kita bahas komponen-komponen STL

Wadah- Ada 10 jenis kontainer yang ditentukan dalam STL dan ini dikelompokkan menjadi 3 kategori. Dari 3 ini, antrian Prioritas termasuk dalam kategori container turunan. Setiap kelas kontainer memiliki sekumpulan fungsi yang dapat digunakan untuk memanipulasi data.



Algoritma - Algoritme adalah metode yang digunakan untuk memproses data yang ada di objek kontainer. STL menyediakan berbagai jenis Algoritma yang dapat digunakan untuk menginisialisasi, mencari, menyortir, menggabungkan, menyalin. Algoritma diimplementasikan dengan bantuan fungsi template.

Iterator- Iterator adalah objek yang mengarah ke elemen dalam wadah. Iterator dapat membantu digunakan dalam memindahkan isi wadah. Iterator seperti pointer yang bisa ditambah dan dikurangi. Ini bertindak sebagai penghubung antara algoritme dan penampung. Iterator digunakan untuk memanipulasi data yang disimpan dalam wadah.

Pindah dengan artikel ini tentang Antrian Prioritas di C ++



Tumpukan dan Antrian Prioritas

Seperti yang kita lihat sebelumnya, Antrian Prioritas termasuk dalam kategori kontainer turunan. Anggota lain dari kategori ini adalah tumpukan dan antrian. Kontainer turunan ini juga dikenal sebagai adaptor kontainer.

Stack, queue dan priority queue dikenal sebagai kontainer turunan karena dibuat dari kontainer urutan yang berbeda. Kontainer ini tidak mendukung semua jenis iterator yang tidak digunakan untuk manipulasi data.

Apa sebenarnya antrian prioritas itu?

Dengan kata sederhana, ini adalah wadah yang kami gunakan untuk menyimpan data. Setiap elemen dari data yang disimpan diberikan beberapa prioritas yang dapat membantu kami dalam menyimpan data dalam urutan yang logis.
Sintaksis:variabel_rioritas_rioritas

Penting untuk memasukkan file header ke dalam program untuk menggunakan antrian prioritas.

antrian prioritas di c ++Misalnya, jika kita menambahkan 2, 10, 30, 5, 6 di antrian prioritas kita menggunakan fungsi push dan kemudian memunculkan elemen menggunakan fungsi pop, hasilnya akan menjadi 30, 10, 6, 5, 2.

Oke, jadi sekarang kita sudah tahu tujuan atau kegunaan antrian prioritas. Tapi bagaimana ia tahu jika 30> 10? Apakah itu melakukan semacam penyortiran? Pada titik ini Tumpukan mulai terlihat. Untuk mempelajari tentang heaps secara rinci, lihat artikel ini.

Heaps- Heaps adalah struktur seperti pohon. Berdasarkan bagaimana node elemen anak diatur dalam heap sehubungan dengan node induk, heaps dibagi menjadi 2 bagian

satu. Min Heap- Di Min Heap, nilai node induk kurang dari atau sama dengan nilai node turunan.

2. Max Heap- Di Max Heap, nilai node induk lebih besar atau sama dengan nilai node turunan.

perbedaan antara metode overloading dan metode overriding

Catatan- Antrian prioritas tidak mengurutkan elemen menggunakan beberapa algoritma pengurutan, melainkan menyimpan data dalam bentuk heap.

Pindah dengan artikel ini tentang Antrian Prioritas di C ++

Mencetak semua elemen antrian prioritas

Setelah memahami dasar-dasar antrian prioritas, mari kita implementasikan program untuk memahami metode yang paling umum digunakan dengan antrian prioritas

#include #include using namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) sementara (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Keluaran:

30 15 10 9 6 2

Dalam program di atas, kami menggunakan fungsi pop (), top () dan push () yang paling sering digunakan saat menangani antrian prioritas. Mari kita lihat beberapa metode yang dapat kita gunakan dengan antrian prioritas

ukuran( ): Fungsi ini Mengembalikan ukuran Antrian Prioritas

kosong( ): Fungsi ini digunakan untuk memeriksa apakah antrian prioritas kosong atau tidak. Ini mengembalikan nilai true dari antrian prioritas kosong.

Dorong( ): Menyisipkan elemen dalam Antrian Prioritas.

menggunakan kelas scanner di java

pop (): Fungsi ini menghapus elemen teratas dari antrian prioritas yang merupakan elemen dengan prioritas tertinggi.

swap (): Fungsi ini menukar elemen antrian prioritas dengan antrian prioritas lain. Fungsi ini mengambil antrian prioritas sebagai parameter.

emplace (): Fungsi ini digunakan untuk menambahkan elemen ke atas antrian prioritas.

Mari kita lihat satu program lagi.

#include #include using namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) sementara (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

Keluaran:

2 6 7 9 10 15 30

Dengan ini, kita sampai pada akhir artikel Antrian Prioritas di C ++ ini. Jika Anda ingin mempelajari lebih lanjut, lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.