Jadual Kandungan
Algoritma operasi sisipan barisan keutamaan
Algoritma operasi sisipan dalam baris gilir keutamaan
Rumah pembangunan bahagian belakang C++ Pengenalan kepada baris gilir keutamaan dalam C/C++

Pengenalan kepada baris gilir keutamaan dalam C/C++

Sep 13, 2023 pm 05:21 PM
pengaturcaraan c bahasa barisan keutamaan

Baris gilir keutamaan ialah baris gilir di mana elemen dimasukkan atau dialih keluar berdasarkan keutamaan yang diberikan kepada mereka, dengan keutamaan ialah nilai integer dalam julat 0-10, di mana 0 mewakili elemen dengan keutamaan tertinggi, 10 bermakna elemen yang mempunyai keutamaan tertinggi mempunyai keutamaan yang paling rendah. Melaksanakan baris gilir keutamaan mengikut dua peraturan:

  • Data atau elemen dengan keutamaan tertinggi akan dilaksanakan sebelum data atau elemen dengan keutamaan terendah.
  • Jika dua elemen mempunyai keutamaan yang sama, ia akan dilaksanakan mengikut susunan ia ditambahkan pada senarai.

Terdapat pelbagai struktur data tersedia yang boleh digunakan untuk melaksanakan baris gilir keutamaan seperti tindanan, baris gilir dan senarai terpaut. Dalam artikel ini, kami akan menerangkan struktur data baris gilir. Terdapat dua kaedah yang boleh digunakan untuk melaksanakan baris gilir keutamaan, contohnya -

  • Kekalkan berbilang barisan keutamaan dalam satu tatasusunan

    一The cara pertama untuk melaksanakan barisan keutamaan adalah dengan mengekalkan baris gilir untuk setiap tahap keutamaan. Kita boleh menyimpan berbilang baris gilir ini dalam tatasusunan di mana setiap baris gilir mempunyai dua penunjuk, Depan dan Belakang. Dalam baris gilir, penuding Hadapan digunakan untuk memasukkan elemen ke dalam baris gilir, dan ia ditambah dengan 1 setiap kali elemen disisipkan ialah penuding belakang, digunakan untuk memadam atau mengalih keluar elemen daripada baris gilir, dan ia adalah dikurangkan setiap kali elemen dimasukkan 1 dikeluarkan daripada baris gilir. Akhirnya, daripada kedudukan dua penunjuk kita juga boleh menentukan bilangan elemen dalam baris gilir.

Pengenalan kepada baris gilir keutamaan dalam C/C++

Nota - Jika saiz setiap giliran adalah sama, maka saiz setiap barisan adalah sama boleh mencipta tatasusunan dua dimensi dan bukannya mencipta tatasusunan satu dimensi berbilang.

Algoritma operasi sisipan barisan keutamaan

insert(queue, data, priority)
   If(queue->Rear[priority] = MAX-1 AND queue->Front[priority] = 0) OR (queue->Rear[priority] +1 =queue->Front[priority])
      Print Overflow
   End
   IF queue->Rear[priority - 1] = MAX-1
      Set queue->Rear[priority - 1] = 0
   Else
      Set queue->Rear[priority] = queue->Rear[priority - 1] +1
   End
      Set queue->CQueue[priority - 1] [queue->Rear[priority - 1] = data
   IF queue->Front[priority - 1] = -1
      Set queue->Front[priority - 1] = 0
End
Salin selepas log masuk

Algoritma operasi sisipan dalam baris gilir keutamaan

delete(queue)
   Set flag = 0, priority = 0
      While priority <= MAX-1
         IF NOT queue->Front[priority] = -1
            Set flag = 1
            Set value = queue->CQueue[priority][queue->Front[priority]]
            IF queue->Front[priority] = queue->Rear[priority]
               Set queue->Front[priority] = queue->Rear[priority] = -1
            Else
            IF queue->Front[priority] = MAX-1
               Set queue->Front[priority] = 0
            Else
               Set queue->Front[priority] = queue->Front[priority] + 1
            End
         End
      Break
   End
   Set priority = priority +
End
If flag = 0
   Print underflow
Else
   Return value
End
Salin selepas log masuk

Atas ialah kandungan terperinci Pengenalan kepada baris gilir keutamaan dalam C/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)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
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)

Pemula yang ditetapkan dalam bahasa C Pemula yang ditetapkan dalam bahasa C Sep 01, 2023 am 08:49 AM

Dalam standard C90, kita perlu memulakan tatasusunan dalam susunan tetap, seperti memulakan indeks pada kedudukan 0, 1, 2, dsb. Bermula dengan standard C99, mereka memperkenalkan fungsi permulaan yang ditetapkan dalam C. Di sini kita boleh memulakan elemen dalam susunan rawak. Permulaan boleh dilakukan menggunakan indeks tatasusunan atau ahli struktur. Sambungan ini tidak dilaksanakan dalam GNUC++. Jika kita menentukan beberapa indeks dan memasukkan beberapa nilai, maka ia akan kelihatan seperti ini - intarr[6]={[3]=20,[5]=40};orintarr[6]={[3]20,[5 ] 40};Ini bersamaan dengan: intarr[6]={0,0,0,20,0,40};Kami juga boleh meletakkan beberapa julat elemen menggunakan sintaks berikut

Pengenalan kepada baris gilir keutamaan dalam C/C++ Pengenalan kepada baris gilir keutamaan dalam C/C++ Sep 13, 2023 pm 05:21 PM

Baris gilir keutamaan ialah baris gilir di mana elemen dimasukkan atau dialih keluar berdasarkan keutamaan yang diberikan kepada mereka, di mana keutamaan ialah nilai integer dalam julat 0-10, dengan 0 mewakili elemen dengan keutamaan tertinggi dan 10 mewakili elemen dengan tertinggi Elemen Keutamaan Elemen dengan keutamaan terendah. Melaksanakan baris gilir keutamaan mengikut dua peraturan: data atau elemen dengan keutamaan tertinggi akan dilaksanakan sebelum data atau elemen dengan keutamaan terendah. Jika dua elemen mempunyai keutamaan yang sama, ia akan dilaksanakan mengikut urutan ia ditambahkan pada senarai. Terdapat pelbagai struktur data yang tersedia yang boleh digunakan untuk melaksanakan baris gilir keutamaan seperti tindanan, baris gilir dan senarai terpaut. Dalam artikel ini, kami akan menerangkan struktur data baris gilir. Terdapat dua cara yang boleh anda gunakan untuk melaksanakan baris gilir keutamaan cth - mengekalkan berbilang dalam tatasusunan tunggal

Dalam bahasa C, parameter panjang berubah-ubah bagi makro Dalam bahasa C, parameter panjang berubah-ubah bagi makro Aug 27, 2023 pm 10:49 PM

Kita tahu bahawa fungsi boleh ditakrifkan menggunakan parameter panjang berubah-ubah dalam bahasa C. Untuk ini kita perlu menggunakan elips (…). Begitu juga, dalam makro, kita juga boleh menggunakan parameter panjang berubah-ubah. Di sini juga, kita perlu memasukkan elips. '__VA_ARGS__' digunakan untuk mengendalikan argumen panjang berubah-ubah. Operator penggabungan '##' digunakan untuk menggabungkan parameter variadik. Dalam contoh ini, makro menerima argumen panjang pembolehubah, sama seperti fungsi printf() atau scanf(). Dalam makro ini, kami akan mencetak nama fail, nombor baris dan mesej ralat. Parameter pertama ialah pr. Ia digunakan untuk mengesahkan

Robin Li menyebut 'trafik yang sibuk' sekali lagi, mengatakan bahawa AI akan mewujudkan lebih banyak peluang untuk manusia Robin Li menyebut 'trafik yang sibuk' sekali lagi, mengatakan bahawa AI akan mewujudkan lebih banyak peluang untuk manusia May 25, 2023 pm 10:05 PM

Dua bulan lalu, lukisan "Kereta, Air, Kuda, Naga" yang dicipta oleh Baidu Wenxinyiyan apabila ia diuji oleh kumpulan pertama pengguna menjadi popular di Internet dalam sekelip mata daripada "Naga", empat perkara yang tidak berkaitan disusun bersama-sama, sememangnya agak tidak bersalah. Kemudian hampir semalaman, Wen Xinyiyan menyelesaikan lelaran dan berjaya mentafsir simpulan bahasa Cina yang mendalam "lalu lintas dan lalu lintas" dengan gambar. Dua bulan kemudian, pada 18 Mei, apabila Robin Li, pengasas, pengerusi dan Ketua Pegawai Eksekutif Baidu, menjelaskan kepada penonton apa itu "AI generatif", dia sekali lagi menyebut "trafik yang sibuk", dan apa yang muncul daripada jenaka itu adalah sesuatu yang lebih. Banyak keyakinan dan ketenangan. Ya, dalam dua bulan lalu, "skor" akademik Wen Xinyiyan telah meningkat hampir secara linear. "Baiduwen

Dalam bahasa C, apakah fungsi sebaris? Dalam bahasa C, apakah fungsi sebaris? Sep 08, 2023 am 11:21 AM

Fungsi sebaris boleh digantikan di mana panggilan fungsi berlaku. Penggantian fungsi sentiasa menjadi pilihan pengkompil. Dalam fungsi sebaris, panggilan fungsi digantikan dengan kod program sebenar. Kebanyakan fungsi sebaris digunakan untuk pengiraan kecil. Mereka tidak sesuai untuk pengiraan besar. Fungsi sebaris adalah serupa dengan fungsi biasa. Satu-satunya perbezaan ialah kami meletakkan kata kunci sebaris sebelum nama fungsi. Fungsi sebaris dicipta menggunakan sintaks berikut -inlinefunction_name(){ //functiondefinition}ContohBerikut ialah fungsi sebaris untuk atur cara C: #include<stdio.h>inlineint

Dalam bahasa C, makro kesihatan Dalam bahasa C, makro kesihatan Sep 03, 2023 pm 06:09 PM

Di sini kita akan melihat makro kebersihan dalam C. Kami tahu penggunaan makro dalam C. Tetapi kadangkala, ia tidak mengembalikan hasil yang dijangkakan kerana penangkapan pengecam yang tidak dijangka. Jika kita melihat kod di bawah, kita dapat melihat bahawa ia tidak berfungsi. Contoh#include<stdio.h>#defineINCREMENT(i)do{inta=0;++i;}while(0)main(void){ inta=10,b=20; //Callthemacrostwotimesforaandb &a

Tatasusunan dalam C/C++? Tatasusunan dalam C/C++? Sep 20, 2023 pm 08:25 PM

Tatasusunan ialah koleksi berurutan unsur-unsur dari jenis yang sama. Tatasusunan digunakan untuk menyimpan koleksi data, tetapi selalunya lebih berguna untuk memikirkan tatasusunan sebagai koleksi pembolehubah daripada jenis yang sama. Daripada mengisytiharkan pembolehubah tunggal seperti nombor0, nombor1, ... dan nombor99, anda boleh mengisytiharkan pembolehubah tatasusunan (cth. nombor) dan mewakilinya menggunakan nombor[0], nombor[1] dan ..., nombor[99] setiap pembolehubah. Elemen tertentu dalam tatasusunan diakses melalui pengindeksan. Semua tatasusunan terdiri daripada lokasi memori bersebelahan. Alamat terendah sepadan dengan elemen pertama, dan alamat tertinggi sepadan dengan elemen terakhir. Mengisytiharkan TatasusunanMengisytiharkan tatasusunan memerlukan menentukan jenis elemen dan bilangan elemen yang diperlukan. Tatasusunan adalah seperti berikut -ty

nombor ribut nombor ribut Aug 26, 2023 am 09:41 AM

UntukNtobeastormernombor,faktor utama tertinggi bagi ungkapanN^2+1mestilah lebih besar daripada sama dengan 2*Nandisepatutnya menjadi integer positif.Contohnya,4isastormernombor.Oleh kerana4*4+1=17mempunyai faktor utama terhebat17sendiri iaitu nombor lebih besar daripada 2*8i.e.e.3=1.2*4i.e. 10

See all articles