@@ -364,11 +364,11 @@ BFS = Breadth-First Search.
364
364
fun bfs(start: String, finish: String) = bfs(this[start], this[finish])
365
365
366
366
private fun bfs(start: Vertex, finish: Vertex): Int {
367
- val queue = ArrayDeque<Vertex>()
367
+ val queue = ArrayDeque<Vertex>() // kotlin.collections.ArrayDeque
368
368
queue.add(start)
369
369
val visited = mutableMapOf(start to 0)
370
370
while (queue.isNotEmpty()) {
371
- val next = queue.poll()
371
+ val next = queue.removeFirst() // Use poll for java.util.Deque instead
372
372
val distance = visited[next]!!
373
373
if (next == finish) return distance
374
374
for (neighbor in next.neighbors) {
@@ -384,8 +384,8 @@ private fun bfs(start: Vertex, finish: Vertex): Int {
384
384
В процессе выполнения поиска в ширину мы используем очередь вершин `ArrayQueue<Vertex>`.
385
385
Принцип функционирования очереди подобен настоящей очереди в магазине --
386
386
вызов функции `queue.add` добавляет вершину-аргумент в конец очереди (увеличивая размер очереди на 1),
387
- а вызов функции `queue.poll `, наоборот, достаёт из головы очереди первую вершину (уменьшая размер на 1).
388
- Для пустой очереди результат `queue.poll ` будет равен **null**.
387
+ а вызов функции `queue.removeFirst() `, наоборот, достаёт из головы очереди первую вершину (уменьшая размер на 1).
388
+ Для пустой очереди результат `queue.removeFirst() ` будет равен **null**.
389
389
Изначально в очередь записывается только стартовая вершина.
390
390
391
391
Для хранения найденных расстояний до уже посещённых вершин функция использует ассоциативный массив,
0 commit comments