Wir wollen jede Komponente eines Graphen mit einer eigenen Farbe markieren; dabei wird auch jeder Knoten genau einmal markiert (und kann dabei auch bearbeitet werden).
TYPE Farbe = 1 .. fmax;
PROCEDURE markiereGraph;
VAR x: Knoten; f: Farbe;
BEGIN f := 1;
WHILE exist(unmarkierteKnoten)
DO x := any(unmarkierteKnoten);
markiereKomponente(x, f);
f := f + 1;
END;
END markiereGraph;
PROCEDURE markiereKomponente(x: Knoten; f: Farbe);
VAR y: Knoten;
BEGIN markiereKnoten(x, f);
FOR ALL y IN Nachbarn(x)
DO IF NOT markiert(y)
THEN markiereKomponente(y, f);
END;
END;
END markiereKomponente;