(La uzataj datumstrukturo kaj la nomoj vertico, erRef, grafeo estas tiaj
samaj kiel en la ekzemplo Interna prezento de grafeoj)
PROCEDURO larĝIro(v: vertico; PROCEDURO vizitu);
KONST maksNro = 6;
VAR ref: erRef;
u, unua, lasta: vertico;
nova: TABELO [vertico] EL Bulea;
vico: TABELO [vertico] EL vertico;
PROCEDURO envicigu(w: vertico);
STARTO
vico[lasta] := w;
SE lasta < maksNro TIAM lasta := sek(lasta);
FINO; {envicigu}
PROCEDURO elvicigu(VAR w: vertico);
STARTO
w := vico[unua]; unua := sek(unua);
FINO; {elvicigu}
FUNKCIO vicoMalplenas: Bulea;
STARTO
vicoMalplenas := (unua = lasta);
FINO; {vicoMalplenas}
STARTO { de larĝIro }
POR unua := 1 SUPRE maksNro FARU nova[unua] := vero;
unua := 1; lasta := unua;
envicigu(v); nova[v] := malvero;
RIPETU
elvicigu(u); vizitu(u); ref := grafeo[u];
DUM ref ≠ NUL FARU STARTO
u := ref↑.nro;
ref := ref↑.plu;
SE nova[u] TIAM STARTO
envicigu(u);
nova[u] := malvero;
FINO;
FINO;
ĜIS vicoMalplenas;
FINO; { larĝIro }
(La uzataj datumstrukturo kaj la nomoj vertico, erRef, grafeo estas tiaj
samaj kiel en la ekzemplo Interna prezento de grafeoj)
PROCEDURO profundIro(komenco: vertico; PROCEDURO vizitu);
VAR nova: TABELO [vertico] EL Bulea;
w: vertico;
PROCEDURO profunden(v: vertico);
VAR ref: erRef;
STARTO
vizitu(v); nova[v]:=malvero;
ref := grafeo[v];
DUM ref ≠ NUL FARU STARTO
SE nova[ref↑.nro] TIAM profunden(ref↑.nro);
ref := ref↑.plu;
FINO;
FINO; {profunden}
STARTO {profundIro}
POR w := 1 SUPRE 6 FARU nova[w] := vero;
profunden(komenco) { --- la radika voko }
FINO; {profundIro}