|
|
(* print connected networks *)
printed := {};
node1 := 0;
WHILE node1 < nodes DO
IF (node1 IN seen) & ~(node1 IN printed) THEN
node2 := 0;
WHILE node2 < nodes DO
IF node2 IN connected[node1] THEN
Write.Int(node2, 3);
INCL(printed, node2);
END;
INC(node2);
END;
Write.Ln;
END;
INC(node1);
END;
|
![]() | Um die mehrfache Ausgabe der gleichen transitiven Hülle
(für alle darin enthaltenen Knoten) zu vermeiden, wird
mittels der Menge printed notiert, welche Knoten bereits
ausgegeben worden sind.
|
![]() | Ein Schleifendurchlauf wird (im Normalfall) gespart,
indem wir sogleich von connected[node1] ausgehen und
nicht nur von {node1}.
|
|
| Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |