Jadual Kandungan
Pengenalan
Apakah itu giliran bulat?
Urus giliran pekeliling
Contoh
Output
Kesimpulan
Rumah pembangunan bahagian belakang C++ Bagaimana untuk menguruskan baris gilir pekeliling lengkap acara dalam C++?

Bagaimana untuk menguruskan baris gilir pekeliling lengkap acara dalam C++?

Sep 04, 2023 pm 06:41 PM
pengendalian acara c pengaturcaraan bahasa Pengurusan giliran pekeliling

Pengenalan

Baris Gilir Pekeliling ialah penambahbaikan pada baris gilir linear, yang diperkenalkan untuk menyelesaikan masalah sisa ingatan dalam baris gilir linear. Baris gilir pekeliling menggunakan prinsip FIFO untuk memasukkan dan memadam elemen daripadanya. Dalam tutorial ini, kami akan membincangkan pengendalian baris gilir bulat dan cara mengurusnya.

Apakah itu giliran bulat?

Baris gilir bulat ialah satu lagi jenis baris gilir dalam struktur data di mana hujung hadapan dan hujung belakang disambungkan antara satu sama lain. Ia juga dikenali sebagai penampan bulat. Ia beroperasi sama seperti baris gilir linear, jadi mengapa kita perlu memperkenalkan baris gilir baharu dalam struktur data?

Apabila menggunakan baris gilir linear, apabila baris gilir mencapai had maksimumnya, mungkin terdapat sedikit ruang memori sebelum penuding ekor. Ini mengakibatkan kehilangan ingatan, dan algoritma yang baik seharusnya dapat menggunakan sumber sepenuhnya.

Untuk menyelesaikan masalah sisa ingatan, pembangun memperkenalkan konsep baris gilir bulat, yang mempunyai keupayaan untuk memaut secara bulat ke bahagian belakang dan bahagian hadapan, dan boleh memasukkan lebih banyak elemen.

Bagaimana untuk menguruskan baris gilir pekeliling lengkap acara dalam C++?

Fungsi asas baris gilir bulat

  • Pos − Ia mengembalikan nilai pos baris gilir.

  • Depan − Ia mengembalikan nilai hadapan baris gilir.

  • deQueue − Kaedah terbina dalam ini digunakan untuk mengalih keluar elemen daripada baris gilir sambil menyemak sama ada baris gilir kosong.

  • enQueue − Kaedah ini digunakan untuk memasukkan elemen baharu semasa menyemak saiz baris gilir.

Dalam baris gilir bulat, elemen ditambah dari bahagian belakang dan dialih keluar dari bahagian hadapan. deQueue dan enQueue ialah fungsi bebas saiz baris gilir dan dilaksanakan menggunakan pengendali modulo. Kerumitan masa mereka ialah O(1).

Urus giliran pekeliling

Kami menguruskan baris gilir bulat dengan menggunakan operasi enQueue dan deQueue. Pada mulanya, nilai hadapan baris gilir bulat ialah 0, nilai belakang ialah -1, dan semua elemen dalam baris gilir bulat adalah NULL.

Contoh

Kod C++, menggunakan tatasusunan untuk melaksanakan baris gilir bulat

#include <bits/stdc++.h>
using namespace std;
 
class Queue {
   //Initializing front and rear of the queue
   int rear, front;
   int sz;
   int* arr;
 
   public:
   Queue(int s) {
      front = rear = -1;
      sz = s;
      arr = new int[s];
   }
   
   void enQueue(int v);
   int deQueue();
   void displayQueue();
};
 
//Circular queue function
void Queue::enQueue(int v) {
   if ((front == 0 && rear == sz - 1)
      || (rear == (front - 1) % (sz - 1))) {
         printf("\nNo Space Queue is Full");
         return;
      }
   
      //Inserting the front element
      else if (front == -1) {
         front = rear = 0;
         arr[rear] = v;
      }
   
      else if (rear == sz - 1 && front != 0) {
         rear = 0;
         arr[rear] = v;
      }
   
      else {
         rear++;
         arr[rear] = v;
      }
}
 
//Function for deleting queue elements
int Queue::deQueue() {
   if (front == -1) {
      printf("\nQueue needs data it is empty");
      return INT_MIN;
   }
   
   int ele = arr[front];
   arr[front] = -1;
   if (front == rear) {
      front = -1;
      rear = -1;
   }
   else if (front == sz - 1)
      front = 0;
   else
      front++;
   return ele;
}
 
//Printing Circular queue elements
void Queue::displayQueue() {
   if (front == -1) {
      printf("\nQueue Empty");
      return;
   }
   printf("\nCircular Queue elements are: \n");
   if (rear >= front) {
      for (int i = front; i <= rear; i++)
      printf("%d ", arr[i]);
   } else {
      for (int i = front; i < sz; i++)
      printf("%d ", arr[i]);
   
      for (int i = 0; i <= rear; i++)
      printf("%d ", arr[i]);
   }
}
 
int main() {
   Queue q(5);
   //Pushing data in circular queue
   q.enQueue(10);
   q.enQueue(20);
   q.enQueue(3);
   q.enQueue(5);
   //Printing circular queue elements
   q.displayQueue();
   
   //Deleting front elements of circular queue
   printf("\nDeleted element = %d\n", q.deQueue());
   printf("\nDeleted element = %d", q.deQueue());
   q.displayQueue();
   q.enQueue(13);
   q.enQueue(27);
   q.enQueue(50);
   q.displayQueue();
   q.enQueue(22);
   
   return 0;
}
Salin selepas log masuk

Output

Circular Queue elements are: 
10 20 3 5 
Deleted element = 10

Deleted element = 20
Circular Queue elements are: 
3 5 
Circular Queue elements are: 
3 5 13 27 50 
No Space Queue is Full
Salin selepas log masuk

Kesimpulan

Baris gilir bulat digunakan dalam pengurusan memori dan penjadualan CPU. Ia menggunakan fungsi displayQueue() untuk memaparkan elemen baris gilir.

Kami telah sampai ke penghujung tutorial ini. Saya harap tutorial ini membantu anda memahami cara melaksanakan baris gilir bulat.

Atas ialah kandungan terperinci Bagaimana untuk menguruskan baris gilir pekeliling lengkap acara dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cadangkan lima perisian pengaturcaraan bahasa C yang praktikal Cadangkan lima perisian pengaturcaraan bahasa C yang praktikal Feb 18, 2024 pm 09:51 PM

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, bahasa C sentiasa digemari oleh pembangun. Apabila pengaturcaraan dalam bahasa C, adalah sangat penting untuk memilih perisian pengaturcaraan yang sesuai. Artikel ini akan mengambil kira lima alatan pengaturcaraan bahasa C praktikal untuk membantu anda meningkatkan kecekapan pengaturcaraan dan kualiti pembangunan. VisualStudioCode (VSCode) VisualStudioCode ialah editor kod merentas platform yang ringan dengan ekosistem pemalam yang berkuasa yang menyokong pelbagai bahasa dan rangka kerja. VS

Perisian penting untuk pengaturcaraan bahasa C: lima pembantu yang baik disyorkan untuk pemula Perisian penting untuk pengaturcaraan bahasa C: lima pembantu yang baik disyorkan untuk pemula Feb 20, 2024 pm 08:18 PM

Bahasa C adalah bahasa pengaturcaraan asas dan penting Bagi pemula, adalah sangat penting untuk memilih perisian pengaturcaraan yang sesuai. Terdapat banyak pilihan perisian pengaturcaraan C yang berbeza di pasaran, tetapi untuk pemula, ia boleh menjadi agak mengelirukan untuk memilih mana yang sesuai untuk anda. Artikel ini akan mengesyorkan lima perisian pengaturcaraan bahasa C kepada pemula untuk membantu mereka bermula dengan cepat dan meningkatkan kemahiran pengaturcaraan mereka. Dev-C++Dev-C++ ialah persekitaran pembangunan bersepadu (IDE) percuma dan sumber terbuka, terutamanya sesuai untuk pemula. Ia mudah dan mudah digunakan, menyepadukan editor,

Bagaimana untuk melaksanakan input dan output Cina dalam program bahasa C? Bagaimana untuk melaksanakan input dan output Cina dalam program bahasa C? Feb 19, 2024 pm 08:22 PM

Bagaimana untuk mengendalikan input dan output Cina dalam perisian pengaturcaraan bahasa C? Dengan perkembangan globalisasi yang seterusnya, skop aplikasi bahasa Cina menjadi semakin meluas. Dalam pengaturcaraan bahasa C, jika anda perlu memproses input dan output bahasa Cina, anda perlu mempertimbangkan pengekodan aksara Cina dan kaedah pemprosesan yang berkaitan. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk memproses input dan output bahasa Cina dalam perisian pengaturcaraan bahasa C. Pertama, kita perlu memahami cara aksara Cina dikodkan. Dalam komputer, kaedah pengekodan aksara Cina yang paling biasa digunakan ialah pengekodan Unikod. Pengekodan Unikod boleh mewakili

Lima perisian pengaturcaraan untuk memulakan pembelajaran bahasa C Lima perisian pengaturcaraan untuk memulakan pembelajaran bahasa C Feb 19, 2024 pm 04:51 PM

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, bahasa C merupakan salah satu bahasa asas yang mesti dipelajari bagi mereka yang ingin melibatkan diri dalam pengaturcaraan komputer. Walau bagaimanapun, bagi pemula, mempelajari bahasa pengaturcaraan baharu boleh menjadi sukar, terutamanya disebabkan kekurangan alat pembelajaran dan bahan pengajaran yang berkaitan. Dalam artikel ini, saya akan memperkenalkan lima perisian pengaturcaraan untuk membantu pemula memulakan bahasa C dan membantu anda bermula dengan cepat. Perisian pengaturcaraan pertama ialah Code::Blocks. Code::Blocks ialah persekitaran pembangunan bersepadu sumber terbuka (IDE) percuma untuk

Menganalisis isu format input biasa bagi fungsi scanf bahasa C Menganalisis isu format input biasa bagi fungsi scanf bahasa C Feb 19, 2024 am 09:30 AM

Analisis Soalan Lazim tentang Bahasa C Scanf Format Input Dalam proses pengaturcaraan dalam bahasa C, fungsi input adalah sangat penting untuk perjalanan program. Kami sering menggunakan fungsi scanf untuk menerima input pengguna. Walau bagaimanapun, disebabkan kepelbagaian dan kerumitan input, beberapa masalah biasa mungkin timbul apabila menggunakan fungsi scanf. Artikel ini akan menganalisis beberapa isu format input scanf biasa dan memberikan contoh kod khusus. Aksara input tidak sepadan dengan format Apabila menggunakan fungsi scanf, kita perlu menentukan format input. Contohnya, "%d

Pengaturcaraan GUI Python: Mulakan dengan cepat dan mudah buat antara muka interaktif Pengaturcaraan GUI Python: Mulakan dengan cepat dan mudah buat antara muka interaktif Feb 19, 2024 pm 01:24 PM

Pengenalan ringkas kepada GUI pengaturcaraan GUI python (Antara Muka Pengguna Grafik, antara muka pengguna grafik) ialah cara yang membolehkan pengguna berinteraksi dengan komputer secara grafik. Pengaturcaraan GUI merujuk kepada penggunaan bahasa pengaturcaraan untuk mencipta antara muka pengguna grafik. Python ialah bahasa pengaturcaraan popular yang menyediakan perpustakaan GUI yang kaya, menjadikan pengaturcaraan GUI Python sangat mudah. Pengenalan kepada perpustakaan GUI Python Terdapat banyak perpustakaan GUI dalam Python, yang paling biasa digunakan ialah: Tkinter: Tkinter ialah perpustakaan GUI yang disertakan dengan perpustakaan standard Python Ia mudah dan mudah digunakan, tetapi mempunyai fungsi yang terhad. PyQt: PyQt ialah perpustakaan GUI merentas platform dengan fungsi yang berkuasa.

Bagaimana untuk melaksanakan pengekodan dan penyahkodan aksara Cina dalam pengaturcaraan bahasa C? Bagaimana untuk melaksanakan pengekodan dan penyahkodan aksara Cina dalam pengaturcaraan bahasa C? Feb 19, 2024 pm 02:15 PM

Dalam pengaturcaraan komputer moden, bahasa C adalah salah satu bahasa pengaturcaraan yang paling biasa digunakan. Walaupun bahasa C itu sendiri tidak menyokong pengekodan dan penyahkodan Cina secara langsung, kami boleh menggunakan beberapa teknologi dan perpustakaan untuk mencapai fungsi ini. Artikel ini akan memperkenalkan cara melaksanakan pengekodan dan penyahkodan bahasa Cina dalam perisian pengaturcaraan bahasa C. Pertama, untuk melaksanakan pengekodan dan penyahkodan Cina, kita perlu memahami konsep asas pengekodan Cina. Pada masa ini, skim pengekodan Cina yang paling biasa digunakan ialah pengekodan Unicode. Pengekodan Unikod memberikan nilai angka yang unik kepada setiap aksara supaya apabila mengira

Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Feb 18, 2024 pm 02:10 PM

Bagaimana untuk melaksanakan fungsi pengisihan aksara Cina dalam perisian pengaturcaraan bahasa C? Dalam masyarakat moden, fungsi pengisihan aksara Cina adalah salah satu fungsi penting dalam banyak perisian. Sama ada dalam perisian pemprosesan perkataan, enjin carian atau sistem pangkalan data, aksara Cina perlu diisih untuk memaparkan dan memproses data teks Cina dengan lebih baik. Dalam pengaturcaraan bahasa C, bagaimana untuk melaksanakan fungsi pengisihan aksara Cina? Satu kaedah diperkenalkan secara ringkas di bawah. Pertama sekali, untuk melaksanakan fungsi pengisihan aksara Cina dalam bahasa C, kita perlu menggunakan fungsi perbandingan rentetan. Berlari

See all articles