Jadual Kandungan
algoritma
Contoh
Output
Rumah pembangunan bahagian belakang C++ Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program C

Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program C

Sep 06, 2023 pm 04:37 PM
beratur vektor bfs (breadth-first search)

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
Salin selepas log masuk

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);
}
Salin selepas log masuk

Output

rreee

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

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

Nota pembangunan Laravel: Penggunaan cache dan baris gilir yang betul Nota pembangunan Laravel: Penggunaan cache dan baris gilir yang betul Nov 22, 2023 am 11:46 AM

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 Senario aplikasi baris gilir surat mati dan baris gilir kelewatan dalam PHP dan MySQL Oct 15, 2023 am 11:46 AM

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:

Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program C Laksanakan BFS menggunakan vektor dan baris gilir, dan laksanakan algoritma CLRS dalam program C Sep 06, 2023 pm 04:37 PM

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

Bagaimana untuk melaksanakan penapisan mesej baris gilir dan penghalaan mesej dalam PHP dan MySQL Bagaimana untuk melaksanakan penapisan mesej baris gilir dan penghalaan mesej dalam PHP dan MySQL Oct 15, 2023 pm 04:55 PM

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 Senario aplikasi kegigihan mesej baris gilir dan penyahduplikasian mesej dalam PHP dan MySQL Oct 15, 2023 pm 01:42 PM

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

Timbunan dan Baris Gilir dalam C++ Timbunan dan Baris Gilir dalam C++ Aug 22, 2023 am 11:00 AM

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

Bagaimanakah kita boleh melaksanakan tindanan menggunakan baris gilir dalam Java? Bagaimanakah kita boleh melaksanakan tindanan menggunakan baris gilir dalam Java? Aug 25, 2023 pm 05:05 PM

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 Cara mengendalikan pengumpulan mesej dan kawalan kesesakan dalam baris gilir dalam PHP dan MySQL Oct 15, 2023 am 09:24 AM

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

See all articles