Pull to refresh

Comments 3

Начнем с простого вопроса: какую задачу решает этот алгоритм? Каково его практическое применение?

Теперь вопросы по реализации:
  • Зачем вы делаете сначала Peek, а потом Dequeue? Dequeue возвращает элемент.
  • Почему вы не помечаете «посещенность» узла прямо в нем? Минус лишний массив.
  • Какой смысл операции Convert.ToBoolean(g[u][i])?
  • Почему нет хотя бы одного тест-кейса на несвязанном графе?

Построчный перевод e-maxx.ru/algo/bfs c++ на c#?

Заметно например по тому что на c# Dequeue уже позвращает результат в отличии от queue::pop в оригинале, но порядок линий сохранился после построчной замены.

Ненужное v = i; которое видимо сохранилось потому что в оригинале было to = g[v][i]; (но g в отличии от оригинала хранит матрицу смежности а не список смежности, поэтому надо было поменять на to = i)

Convert.ToBoolean(g[u][i]) это тоже весело, в конце концов уже и хранить булями, либо хотя бы g[u][i] == 1 чтоб не так страшно было
Sign up to leave a comment.

Articles