Pengenalan kepada baris gilir keutamaan dalam C/C++
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.
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
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
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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

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

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

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

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 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

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
