Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
20
Listing1040(cd0)
20
structEd.E{
21
intV;
22
Ed(Ep>intw).E(p)>V(w){}
23
};
24
struct.V>Vęctor
<
Ed
>
{};
25
Vęctor
Graph(intn=0).g(n){}
<
>
g;
26
27
VoidEdgęD(intb>intę>Ed=E()){
28
g[b]ºPB(Ed(d>ę));
29
}
30
VoidWritę(){
31
REP(Ü>SlZE(g)){
cout
<<
Ü
<<
fl.fl;
32
33
FOREACH(it>g[Ü])cout
<<
<<
it-
>
V;
34
37};
38structEmpty{};
39intmain(){
40
41
42
}
intn>m>b>ę;
cin
Graph
}
>>
<
cout
Empty>Empty
n
>>
<<
m;
ęndl;
>
gr(n);
35
36
43
REP(Ü>m){
cin
>>
b
>>
ę;
44
45
grºEdgęD(b>ę);
46
}
47
grºWritę();
48
return0;
49}
Algorytmygrσfowe
º
1020Przeszukiwaniegrafuwszerz
BFS,czyliprzeszukiwσniegrσfuwszerz(σngºbreIdth-first
Literσturσ
seIrch),tometodσsystemσtycznegobσdσniσstrukturygrσ-
[2]T1º5º3
fuºZσkłσdσsięwniej,żedσnyjestgrσf
G=(VjE)
(skie-
[4]T22º2
rowσnybądźnieskierowσny)orσzwyróżnionywierzchołek
5
,
[13]T2º3
zwσnyźródłemprzeszukiwσniσºDlσkσżdegowierzchołkσ
v
V
σlgorytmBFSobliczσodległość
t(v)
odwierzchołkσ
5
(rozumiσnąjσkonσjmniejszσliczbσkrσwędziścieżceodwierzchołkσ
5
do
v
Wy-
znσczσnyjestrównieżwierzchołek
5(v)
połączonykrσwędziąz
v
,przezktóryprzechodzi
nσjkrótszσścieżkσzeźródłσwyszukiwσniσdo
v
ºZσsσdσdziσłσniσσlgorytmuBFSjestpro-
stσºpoczątkuodwiedzonywierzchołekuwσżσsiętylko
5
Twyznσczonσdlσniego