Pentru a calcula distanţa minimă de la poziţia iniţială a şoricelului până la poziţia caşcavalului, vom utiliza o coadă C. În coadă vom reţine poziţiile "vizitate" (la care şoricelul a ajuns deja) în ordinea vizitării acestora.
struct Pozitie C[DMAX*DMAX];
Iniţial, în coadă plasăm poziţia de start a şoricelului.
Cât timp şoricelul nu a ajuns în poziţia în care se află caşcavalul:
- extragem un element din coadă (poziţia curentă);
- parcurgem toţi vecinii poziţiei curente: dacă vecinul curent reprezintă culoar care nu a mai fost vizitat, îl vizităm (marcând distanţa până la el în matrice) şi îl inserăm în coadă
Felicitări! Şoricelul a descoperit cel mai scurt drum până la brânză.
Şoricelul nu mai are unde să se ducă. El nu poate ajunge la brânză.
După parcurgerea lecției, elevul va fi capabil:
- să declare tipul de date necesar pentru reprezentarea unei poziţii
- să declare o coadă în care sunt memorate poziţii
- să descrie modul de utilizare a cozii pentru determinarea distanţelor minime