|
(* compute transitive closures *) node1 := 0; WHILE node1 < nodes DO IF connected[node1] # {} THEN closure := connected[node1]; LOOP node2 := 0; WHILE node2 < nodes DO IF node2 IN closure THEN closure := closure + connected[node2]; END; INC(node2); END; IF closure = connected[node1] THEN EXIT END; connected[node1] := closure; END; END; INC(node1); END; |
Zu beachten ist, daß T3 zwei ineinander geschachtelte
Schleifen benötigt. Die äußere Schleife durchläuft
alle c ∈ C (in Oberon alle node2 IN closure) und
die innere berechnet jeweils T = {t | (c,t) ∈ R}.
| |
In Oberon werden die Resultate von T3 sogleich entsprechend
dem Schritt T4 in C aufgesammelt.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |