25.11.2014 Views

Algorithms and Data Structures

Algorithms and Data Structures

Algorithms and Data Structures

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

N.Wirth. <strong>Algorithms</strong> <strong>and</strong> <strong>Data</strong> <strong>Structures</strong>. Oberon version 112<br />

be given the value 1; all others are to be marked free.<br />

VAR h: ARRAY n, n OF INTEGER; (* ADenS34_KnightsTour *)<br />

dx, dy: ARRAY 8 OF INTEGER;<br />

PROCEDURE CanBeDone (u, v, i: INTEGER): BOOLEAN;<br />

VAR done: BOOLEAN;<br />

BEGIN<br />

h[u, v] := i;<br />

TryNextMove(u, v, i, done);<br />

IF ~done THEN h[u, v] := 0 END;<br />

RETURN done<br />

END CanBeDone;<br />

PROCEDURE TryNextMove (x, y, i: INTEGER; VAR done: BOOLEAN);<br />

VAR eos: BOOLEAN; u, v: INTEGER; k: INTEGER;<br />

PROCEDURE Next (VAR eos: BOOLEAN; VAR u, v: INTEGER);<br />

BEGIN<br />

REPEAT<br />

INC(k);<br />

IF k < 8 THEN u := x + dx[k]; v := y + dy[k] END;<br />

UNTIL (k = 8) OR ((0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!