|
(* 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 |