(V ,E), reprezentowany przez listy i

Transkrypt

(V ,E), reprezentowany przez listy i
Zmodyfikowany algorytm wyznaczania cyklu Eulera
Algorytm EulerCycle
Input: Spójny graf G = (V, E), reprezentowany przez listy
incydencji N(v), którego każdy wierzchołek jest parzystego stopnia.
Output: Cykl Eulera reprezentowany na stosie CE.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
STOS= ∅; CE= ∅;
v=dowolny wierzchołek grafu;
STOS.push(v);
umieść v na stosie
while STOSÓ= ∅ do
v=STOS.peek(); v=szczytowy wierzchołek stosu
if N(v)Ó= ∅ then
u=pierwszy wierzchołek listy N(v);
STOS.push(u);
umieść u na stosie
N(v)=N(v)\{u}; usuń kraw˛edź {v,u} z grafu G
N(u)=N(u)\{v};
else
N(v)= ∅
STOS.pop(v);
zdejmij v ze stosu
CE.push(v);

Podobne dokumenty