Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace pretraga_u_dubinu___dfs_depth_first_search_
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- int[,] polja = new int[,]
- {
- {0, 0, 0, 0, 0 },
- {0, 0, -1, -1, -1 },
- {0, 0, -1, -1, 0 },
- {0, 0, 0, 0, 0 },
- };
- Stack<int> poljaZaObilazak = new();
- poljaZaObilazak.Push(0);
- int[,] validniPotezi =
- {
- { 0, 1 }, //desno
- { 1, 0 }, //dole
- { 0, -1 }, //levo
- { -1, 0 }, //gore
- };
- while (poljaZaObilazak.Any())
- {
- int pozicijaPolja = poljaZaObilazak.Pop();
- int redPolja = pozicijaPolja / polja.GetLength(1);
- int kolonaPolja = pozicijaPolja % polja.GetLength(1);
- for (int i = 0; i < validniPotezi.GetLength(0); i++)
- {
- int noviRed = redPolja + validniPotezi[i, 0];
- int novaKolona = kolonaPolja + validniPotezi[i, 1];
- if (noviRed >= 0 && noviRed < polja.GetLength(0) && novaKolona >= 0 && novaKolona < polja.GetLength(0) && polja[noviRed, novaKolona] == 0)
- {
- int novaPozicija = noviRed * polja.GetLength(0) + novaKolona;
- poljaZaObilazak.Push(novaPozicija);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement