Wahl der Datenstruktur V

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Queens.om
PROCEDURE Threatened(board: Board;
                     row, col: Position) : BOOLEAN;
BEGIN
   ASSERT((row >= 0) & (row < board.size) &
          (col >= 0) & (col < board.size));
   RETURN (row IN board.rows) OR
          (col IN board.cols) OR
          (row - col + board.size - 1 IN board.diags1) OR
          (row + col IN board.diags2)
END Threatened;

*Der Überprüfungsaufwand von Threatened liegt jetzt bei O(1).
 
*ASSERT erhält einen Ausdruck vom Typ BOOLEAN und führt zu einem Laufzeitfehler, falls dieser Ausdruck FALSE sein sollte. Auf diese Weise lassen sich recht elegant zusätzliche Überprüfungen einfügen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999