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 POR unua:=1 SUPRE maksNro FARU nova[unua]:=vero;
unua:=1; lasta:=unua; envicigu(v); nova[v]:=falso;
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]:=falso FINO;
FINO;
ĜIS vicoMalplenas;
FINO; { larĝIro }
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]:=falso;
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}
![[Indekso]](bildoj/indekso.gif)
![[Instrukcio]](bildoj/kovrilo.gif)