« poprzedni punkt | następny punkt » |
Udowodnij, że graf niezorientowany jest
drzewem wtedy i tylko wtedy, gdy dowolne dwa jego wierzchołki można
połaczyć dokładnie jedną drogą.
Niech G będzie grafem niezorientowany, którego
wierzchołkami sa liczby naturalne 1,..., n. Niech Tab będzie tablicą,
przechowującą informacje o danym podziale zbioru wierzchołków grafu G:
Tab[i] jest nazwą tego zbioru w danym podziale, do którego należy
wierzchołek i.
Zaimplementuj operacje Find i Union w tym modelu. Oszacuj koszt
algorytmu Kruskala z Twoją implementacją operacji Find-Union.
Niech G = <V, E> będzie grafem
niezorientowanym, spójnym. Niech T1 = <V, E1>
oraz T2 = <V, E2> będą dwoma drzewami
rozpinającmi
grafu G. Udowodnij, że dla dowolnej krawędzi a Î
E1\ E2,
istnieje krawędź b Î E2\ E1,
taka że graf
<V, (E1\{a}) È{b}> jest
też drzewem rozpinającym grafu
G.
(a) Narysuj drzewo powstałe w wyniku wykonania
następującego ciągu instrukcji, jeżeli struktura Find-Union
została zaimplementowana na drzewach z balansowaniem i kompresją
ścieżek:
{P := Union(P,A,B); P :=Union (P,C,D); P:= Union(P,E,F); P:=
Union(P,G,H);
P := Union(P,H,E); P := Union(P,C,E); P := Union
(P,E,B); X :=Find(P,H);}
Zakładamy, że pocztkowo P = {A, B, C, D, E, F, G, H}.
(b) Narysuj drzewo powstałe w wyniku wykonania tych samych
instrukcji,
jeśli struktura Find-Union została zaimplementowana bez balansowania i
bez kompresji ścieżek.
« poprzedni punkt | następny punkt » |