


Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program C
Dalam buku CLRS, algoritma BFS diterangkan menggunakan vektor dan baris gilir. Kita perlu menggunakan C++ STL untuk melaksanakan algoritma ini. Mula-mula mari kita lihat algoritma. Terjemahan bahasa Cina bagi
algoritma
BFS(G, s) −
begin for each vertex u in G.V - {s}, do u.color := white u.d := infinity u.p := NIL done s.color := green s.d := 0 s.p := NIL Q := NULL insert s into Q while Q is not null, do u = delete from Q for each v in adjacent to u, do if v.color = white v.color := green v.d := u.d + 1 v.p := u insert v into Q end if done u.color = dark_green done end
Contoh
ialah:Contoh
#include<iostream> #include<vector> #include<queue> using namespace std; vector<string> colour; vector<int> dist; vector<int> par; void addEdge(vector <int> g[], int u, int v) { //add edge to form the graph g[u].push_back(v); g[v].push_back(u); } void BFS(vector <int> g[], int s) { queue<int> q; q.push(s); //insert source dist[s] = 0; colour[s] = "gray"; while (!q.empty()) { int u = q.front(); //top element from queue, then delete it q.pop(); cout << u << " "; for (auto i = g[u].begin(); i != g[u].end(); i++) { if (colour[*i] == "white") { //white is unvisited node colour[*i] = "gray"; //gray is visited but not completed dist[*i] = dist[u] + 1; par[*i] = u; q.push(*i); } } colour[u] = "black"; //black is completed node } } void BFSAlgo(vector <int> g[], int n) { colour.assign(n, "white"); //put as unvisited dist.assign(n, 0); par.assign(n, -1); for (int i = 0; i < n; i++) if (colour[i] == "white") BFS(g, i); } int main() { int n = 7; vector <int> g[n]; addEdge(g, 0, 1); addEdge(g, 0, 2); addEdge(g, 1, 3); addEdge(g, 1, 4); addEdge(g, 2, 5); addEdge(g, 2, 6); BFSAlgo(g, n); }
Output
rreeeAtas ialah kandungan terperinci Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program 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



Laravel ialah rangka kerja pembangunan PHP yang sangat popular Ia menyediakan fungsi yang kaya dan kaedah pembangunan yang mudah, yang boleh membantu pembangun dengan cepat membina aplikasi web yang stabil dan boleh dipercayai. Semasa proses pembangunan Laravel, adalah sangat penting untuk menggunakan cache dan baris gilir dengan betul Artikel ini akan memperkenalkan beberapa langkah berjaga-jaga untuk membantu pembangun menggunakan cache dan baris gilir dengan lebih baik. 1. Penggunaan cache yang munasabah Definisi dan fungsi cache Cache ialah teknologi yang menyimpan sementara data yang kerap digunakan dalam ingatan, yang boleh meningkatkan kelajuan tindak balas sistem.

Senario aplikasi baris gilir surat mati dan baris gilir kelewatan dalam PHP dan MySQL Pengenalan Apabila aplikasi Internet menjadi semakin kompleks, keperluan untuk memproses sejumlah besar mesej dan tugasan semakin meningkat dari hari ke hari. Sebagai penyelesaian, baris gilir boleh melaksanakan pemprosesan tugasan tak segerak dengan berkesan dan meningkatkan kebolehskalaan dan kestabilan sistem. Dalam aplikasi baris gilir, dua konsep biasa ialah baris gilir huruf mati dan baris gilir kelewatan. Artikel ini akan memperkenalkan senario aplikasi kedua-dua konsep ini dalam PHP dan MySQL, dan menyediakan contoh kod khusus. Senario aplikasi baris gilir surat mati ialah:

Dalam buku CLRS, algoritma BFS diterangkan menggunakan vektor dan baris gilir. Kita perlu menggunakan C++STL untuk melaksanakan algoritma ini. Mula-mula mari kita lihat algoritma. Algoritma BFS(G,s)−mulakan foreachvertexuinG.V-{s},do u.color:=white u.d:=infinity u.p:=NI

Pelaksanaan Queue bagi penapisan mesej dan penghalaan mesej dalam PHP dan MySQL Dengan perkembangan pesat Internet, baris gilir mesej (MessageQueue), sebagai mekanisme komunikasi yang penting, memainkan peranan penting dalam pembangunan Web. Baris gilir mesej boleh digunakan untuk melaksanakan fungsi seperti penyahgandingan, pencukuran puncak dan pemprosesan tak segerak. Artikel ini akan memperkenalkan cara melaksanakan penapisan mesej dan penghalaan mesej dalam PHP dan MySQL, serta menyediakan contoh kod khusus. Baris gilir mesej Baris gilir mesej ialah model biasa "pengeluar-pengguna".

Senario aplikasi kegigihan mesej baris gilir dan penyahduplikasian mesej dalam PHP dan MySQL Queue ialah struktur data biasa dan digunakan secara meluas dalam pemprosesan mesej tak segerak, penjadualan tugas, pengumpulan log dan senario lain dalam pembangunan perisian. Antaranya, ketekunan mesej dan deduplikasi mesej adalah dua ciri penting dalam baris gilir, yang boleh memastikan kebolehpercayaan mesej dan konsistensi data. Dalam PHP dan MySQL, aplikasi baris gilir boleh menggunakan Redis sebagai perisian tengah mesej dan MySQL untuk menyimpan dan mengurus metadata baris gilir Contoh khusus adalah seperti berikut. pertama

Pengenalan kepada tindanan dan baris gilir dalam C++ Tindanan dan baris gilir adalah struktur data yang biasa digunakan dalam C++, dan ia digunakan secara meluas dalam atur cara. Artikel ini akan memperkenalkan konsep, penggunaan dan senario aplikasi tindanan dan baris gilir secara terperinci. 1. Konsep Stack Stack (Stack) ialah struktur data linear, yang mempunyai ciri-ciri "masuk pertama, keluar terakhir". Dalam tindanan, data yang ditolak ke dalam tindanan adalah lebih dekat dengan bahagian bawah tindanan; Operasi utama timbunan ialah tolak dan pop. Menolak adalah untuk menambah data pada timbunan, dan muncul

Tindanan ialah subkelas kelas Vektor dan mewakili timbunan objek yang masuk dahulu (LIFO) terakhir. Elemen terakhir yang ditambahkan pada bahagian atas tindanan (Masuk) boleh menjadi elemen pertama yang dialih keluar daripada tindanan (Keluar). Kelas Baris Gilir memanjangkan antara muka Koleksi dan menyokong operasi sisipan dan pemadaman menggunakan masuk dahulu keluar dahulu (FIFO). Kita juga boleh menggunakan baris gilir untuk melaksanakan tindanan dalam program berikut. Contoh importjava.util.*;publicclassStackFromQueueTest{ Queuequeue=newLinkedList();

Cara mengendalikan pengumpulan mesej dan kawalan kesesakan dalam baris gilir dalam PHP dan MySQL Dengan perkembangan pesat Internet, bilangan pengguna pelbagai laman web dan aplikasi terus meningkat, yang meletakkan keperluan yang lebih tinggi pada kapasiti beban pelayan. Dalam konteks ini, baris gilir mesej telah menjadi penyelesaian yang biasa digunakan untuk menyelesaikan masalah pengumpulan mesej dan kesesakan di bawah capaian serentak yang tinggi. Artikel ini akan memperkenalkan cara mengendalikan pengumpulan mesej dan kawalan kesesakan dalam baris gilir dalam PHP dan MySQL, dan memberikan contoh kod khusus. Dalam PHP kita boleh menggunakan Re
