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;