C++

Cara menggunakan Antrian C++

Cara menggunakan Antrian C++

pengantar

Antrian adalah kumpulan item, di mana item pertama yang ditambahkan ke dalam daftar, harus menjadi item pertama yang akan dihapus selanjutnya. Jadi saat item ditambahkan ke koleksi, ukurannya bertambah, i.e. itu bertambah panjang. Setiap kali ada item yang akan dihapus, itu harus menjadi yang pertama ditambahkan. Jika item dihapus terus menerus, maka item berikutnya yang dihapus adalah item kedua; yang ketiga dihapus sesudahnya, dan seterusnya.

Setelah item pertama dari daftar asli telah dihapus, yang kedua menjadi item pertama. Setelah item kedua dihapus, item ketiga menjadi item pertama, dan seterusnya.

Contoh antrean kehidupan nyata yang baik adalah ketika orang mengantre untuk menunggu layanan atau barang. Orang pertama dilayani terlebih dahulu sebelum yang terakhir. Namun, antrian yang dibicarakan dalam tutorial ini, adalah antrian perangkat lunak, seperti yang dirancang dalam C++.

FIFO

FIFO adalah singkatan dari First-In, First-Out. Ini adalah cara lain untuk menghargai antrian. Ini berarti, item pertama yang masuk ke daftar, adalah item pertama yang dihapus, setiap kali penghapusan dilakukan. Awal daftar disebut kepala atau depan; akhir daftar disebut bagian belakang atau ekor.

Operasi Esensial

Antrian perangkat lunak harus memiliki setidaknya operasi berikut:

Dorong

Operasi ini, menambahkan elemen baru di belakang antrian. Operasi ini secara resmi disebut, enqueue.

bergeser

Operasi ini menghapus elemen pertama dari antrian, dan elemen kedua menjadi elemen pertama yang baru. Operasi ini secara resmi disebut dequeue. Itu disebut pop di C++.

Artikel ini menjelaskan cara menggunakan struktur data antrian C++. Anda harus mengetahui petunjuk dan referensi C++ untuk memahami sisa artikel ini.

Kelas dan Objek

Kelas adalah sekumpulan variabel dan fungsi yang bekerja sama, di mana variabel tidak memiliki nilai yang ditetapkan. Ketika nilai ditugaskan ke variabel, kelas menjadi objek. Nilai berbeda yang diberikan pada kelas yang sama menghasilkan objek yang berbeda; yaitu, objek yang berbeda adalah kelas yang sama dengan nilai yang berbeda. Membuat objek dari kelas dikatakan membuat objek.

Nama, antrian, adalah kelas. Objek yang dibuat dari kelas antrian memiliki nama yang dipilih programmer.

Fungsi yang termasuk dalam kelas diperlukan untuk membuat instance objek dari kelas. Di C++, fungsi itu memiliki nama yang sama dengan nama kelas. Objek yang dibuat (dicontohkan) dari kelas memiliki nama berbeda yang diberikan kepada mereka, oleh programmer.

Membuat objek dari kelas berarti membangun objek; itu juga berarti instantiating.

Program C++ yang menggunakan kelas antrian, dimulai dengan baris berikut di bagian atas file:

#termasuk
#termasuk
menggunakan namespace std;

Baris pertama adalah untuk input/output. Baris kedua adalah mengizinkan program untuk menggunakan semua fitur dari kelas antrian. Baris ketiga memungkinkan program untuk menggunakan nama-nama di namespace standar.

Membebani Fungsi

Ketika dua atau lebih tanda tangan fungsi yang berbeda memiliki nama yang sama, nama tersebut dikatakan kelebihan beban. Ketika satu fungsi dipanggil, jumlah dan jenis argumen, tentukan fungsi mana yang benar-benar dieksekusi.

Konstruksi

antre nama()

Deklarasi berikut membuat sebuah antrian bernama, que dari tipe int.

antre pertanyaan;

Antriannya kosong. Deklarasi dimulai dengan kata yang dicadangkan, antrian diikuti oleh kurung sudut dengan tipe data. Kemudian Anda memiliki programmer yang diberi nama untuk antrian.

Membangun dengan Daftar Penginisialisasi

Definisi berikut menunjukkan cara membuat antrian dengan daftar penginisialisasi:

antre pertanyaan(1.1, 2.2, 3.3, 4.4);

Menghancurkan Antrian

Untuk menghancurkan antrian, biarkan saja keluar dari ruang lingkup.

Akses Elemen Antrian

dorong (nilai)

Antrian adalah daftar First-In-First-Out. Jadi, setiap nilai ditambahkan dari belakang. Segmen kode berikut membuat antrian kosong, setelah itu lima nilai float ditambahkan dari belakang:

antre pertanyaan;
pertanyaan.dorong (1.1);
pertanyaan.dorong (2.2);
pertanyaan.dorong(3.3);
pertanyaan.dorong (4.4);
pertanyaan.dorong (5.5);

ukuran() const

Ini mengembalikan jumlah elemen dalam antrian. Kode berikut menggambarkan:

antre pertanyaan;
pertanyaan.dorong (1.1); pertanyaan.dorong (2.2); pertanyaan.dorong(3.3); pertanyaan.dorong (4.4); pertanyaan.dorong (5.5);
cout << que.size() << '\n';

Outputnya adalah 5.

depan()

Ini mengembalikan referensi ke elemen pertama dari antrian, tanpa menghapus elemen. Output dari kode berikut adalah 1.1.

antre pertanyaan;
pertanyaan.dorong (1.1); pertanyaan.dorong (2.2); pertanyaan.dorong(3.3); pertanyaan.dorong (4.4); pertanyaan.dorong (5.5);
cout << que.front() << '\n';

Elemen tidak dihapus dari antrian.

depan() konstan

Ketika konstruksi antrian didahului oleh const, ekspresi "front() const" akan dieksekusi sebagai ganti "front()". Ini digunakan dalam kode berikut, misalnya.

antrian konstan pertanyaan (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';

Referensi konstan dikembalikan. Elemen tidak dihilangkan dari vektor. Elemen antrian tidak dapat diubah.

kembali()

Ini mengembalikan referensi ke elemen terakhir dari antrian, tanpa menghapus elemen. Output dari kode berikut adalah 5.5.

antre pertanyaan;
pertanyaan.dorong (1.1); pertanyaan.dorong (2.2); pertanyaan.dorong(3.3); pertanyaan.dorong (4.4); pertanyaan.dorong (5.5);
cout << que.back() << '\n';

kembali() const

Ketika konstruksi antrian didahului oleh const, ekspresi “back() const” akan dieksekusi sebagai ganti “back()”. Ini digunakan dalam kode berikut, misalnya.

antrian konstan pertanyaan (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.back() << '\n';

Referensi konstan dikembalikan. Elemen tidak dihapus dari antrian. Dengan const sebelumnya untuk konstruksi antrian, elemen dalam antrian tidak dapat diubah.

Kapasitas Antrian

ukuran() const

- Lihat di atas

kosong() const

Ini mengembalikan 1 untuk true jika tidak ada elemen dalam antrian, atau 0 untuk false jika antrian kosong. Kode berikut menggambarkan hal ini:

antre pertanyaan1 (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que1.empty() << '\n';
antre pertanyaan2;
cout << que2.empty() << '\n';

Outputnya adalah:

0
1

Pengubah Antrian

pop()

Antrian adalah FIFO, jadi elemen apa pun yang harus dihapus harus dikeluarkan dari atas (kepala) antrian. Fungsi anggota ini menghapus elemen pertama tanpa mengembalikannya. Kode berikut menggambarkan hal ini:

antre pertanyaan (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';
pertanyaan.pop();
cout << que.size() << '\n';

Outputnya adalah:

1.1
4

Sebuah.bertukar (b)

Dua antrian dapat ditukar, seperti yang diilustrasikan dalam segmen kode ini:

antre pertanyaan1(1.1, 2.2, 3.3, 4.4, 5.5);
antre que2(10, 20);
pertanyaan1.tukar (que2);
cout << "First element and size of que1:
"<< que1.front() <<", "<< que1.size() << '\n';
cout << "First element and size of que2 "<<
pertanyaan2.depan() <<", "<< que2.size() << '\n';

Outputnya adalah:

Elemen pertama dan ukuran que1: 10, 2

Elemen pertama dan ukuran que2: 1.1, 5

Perhatikan bahwa panjang antrian bertambah jika perlu. Juga, nilai yang tidak memiliki pengganti, diganti dengan beberapa nilai default. Tipe data harus dari tipe yang sama.

Operator Kesetaraan dan Relasional untuk Antrian

Untuk karakter biasa dalam C++, dalam urutan menaik, angka datang sebelum huruf besar, yang datang sebelum huruf kecil. Karakter ruang datang sebelum nol dan semuanya.

Operator Kesetaraan

Mengembalikan 1 untuk benar dan 0 untuk salah.

== Operator

Mengembalikan 1 jika dua antrian memiliki ukuran yang sama dan elemen yang sesuai sama; jika tidak, ia mengembalikan 0. Contoh:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 == que2;
cout << num << '\n';

Outputnya adalah: 0.

Itu != Operator

- kebalikan dari di atas. Contoh:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 != pertanyaan2;
cout << num << '\n';

Outputnya adalah: 1.

Operator Relasional

Mengembalikan 1 untuk benar dan 0 untuk salah.

Itu < Operator

Mengembalikan 1 jika antrian pertama adalah subset awal dari antrian kedua, dengan elemen dari dua bagian yang sama menjadi sama dan dalam urutan yang sama. Jika kedua antrian memiliki ukuran yang sama atau ukuran yang berbeda, dan bergerak dari kiri ke kanan, sebuah elemen ditemui dalam antrian pertama yang kurang dari elemen yang sesuai pada antrian kedua, maka 1 masih akan dikembalikan. Jika tidak, 0 dikembalikan. Contoh:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 < que2;
cout << num << '\n';

Outputnya adalah 1. < does not include the case when the size and order are the same.

> Operator

- kebalikan dari di atas. Contoh:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 > que2;
cout << num << '\n';

Keluaran: 0

Itu <= Operator

- sama dengan < but includes the case when the size and order are the same. Example:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 <= que2;
cout << num << '\n';

Keluaran: 1

>= Operator

- kebalikan dari di atas. Contoh:

antre que1("jenis", "sesuatu yang lain");
antre que2("jahat");
int jumlah = que1 >= que2;
cout << num << '\n';

Keluaran: 0

Kelas dan Objek Instansinya

Nilai adalah untuk tipe data, karena objek yang dipakai adalah untuk kelas. Konstruksi antrian juga dapat menerima kelas sebagai tipe data. Program berikut menggambarkan hal ini:

#termasuk
#termasuk
menggunakan namespace std;
kelas TheCla

publik:
int nomor;
karakter statis;
void func (char cha, const char *str)

cout << "There are " << num << " books worth " << cha << str << " in the store." << '\n';

static void fun (char ch)

jika (ch == 'a')
cout << "Official static member function" << '\n';

;
int utama()

Kla obj1; TheCla obj2; TheCla obj3; TheCla obj4; TheCla obj5;
antre pertanyaan;
pertanyaan.dorong (obj1); pertanyaan.dorong (obj2); pertanyaan.dorong (obj3); pertanyaan.dorong (obj4); pertanyaan.dorong (obj5);
cout << que.size() << '\n';
kembali 0;

Outputnya adalah 5.

Daftar Tertaut

Daftar antrian secara teknis disebut daftar tertaut. Ada dua jenis daftar tertaut untuk antrian: daftar tertaut tunggal dan daftar tertaut ganda.

Elemen daftar tertaut tunggal dapat diimplementasikan oleh struct dari dua anggota. Satu anggota memegang pointer ke elemen berikutnya dan anggota lainnya memegang datum (tunggal untuk data).

Elemen daftar tertaut ganda dapat diimplementasikan oleh struct yang terdiri dari tiga anggota. Anggota tengah memegang datum, sedangkan anggota pertama dan ketiga memegang pointer ke elemen yang berdekatan.

Aplikasi Antrian

Antrian adalah struktur data first-in-first-out. Ada situasi dalam komputasi ketika data tiba dalam bentuk antrian, yang memerlukan perilaku first-in-first-out.

Berbagi Sumber Daya Komputer

Sumber daya di komputer adalah komponen fisik atau virtual apa pun dengan ketersediaan terbatas. Mereka termasuk CPU, kartu video, hard drive, dan memori. Berbagi sumber daya seperti itu membutuhkan antrian.

Menangani Interupsi

Periferal komputer perlu menginterupsi komputer dari waktu ke waktu. Interupsi harus ditangani dengan cara yang sama ketika mereka tiba. Ini membutuhkan antrian.

Kelola informasi.

Antrian dapat digunakan, misalnya, untuk mengelola file aplikasi untuk suatu pekerjaan, jika file tersebut disimpan di komputer.

Kesimpulan

Antrian adalah struktur data daftar, yang merupakan daftar tertaut tunggal atau daftar tertaut ganda. Sebagai aturan, elemen pertama yang masuk daftar adalah elemen pertama yang keluar. C++ menyediakan struktur data antrian di perpustakaan standarnya. Kategori fungsi anggota dan operator yang tersedia untuk struktur ini adalah konstruksi antrian, akses elemen antrian, kapasitas antrian, pengubah antrian, dan operator kelebihan beban antrian.

Setiap struktur data antrian harus menyediakan setidaknya, fungsi anggota push() dan pop(). push() artinya, mengirim elemen baru di belakang antrian; dan pop() berarti, menghapus elemen yang ada di depan antrian. Sayangnya, di C++, fungsi-fungsi ini tidak mengembalikan nilai yang didorong atau muncul. Jadi, untuk mengetahui elemen terakhir sebelum mendorong, fungsi ekstra back() harus digunakan; dan untuk mengetahui elemen pertama sebelum muncul, fungsi extra front() harus digunakan.

Nilai adalah untuk tipe data, karena objek yang dipakai adalah untuk kelas. Jadi, kelas tertentu dapat digunakan sebagai tipe data untuk instantiasi template antrian. Objek yang berbeda untuk kelas menjadi seperti nilai yang berbeda untuk kelas.

Antrian memiliki aplikasi di komputer. Ini dapat digunakan, misalnya, untuk mengelola file aplikasi untuk suatu pekerjaan, jika file tersebut disimpan di komputer.

Chrys

WinMouse memungkinkan Anda menyesuaikan & meningkatkan gerakan penunjuk tetikus di PC Windows
Jika Anda ingin meningkatkan fungsi default penunjuk tetikus Anda, gunakan freeware WinMouse. Ini menambahkan lebih banyak fitur untuk membantu Anda m...
Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...
Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...