回答編集履歴
1
文言変更
test
CHANGED
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|
Wikipediaの幅優先探索の[疑似コード](https://ja.wikipedia.org/wiki/%E5%B9%85%E5%84%AA%E5%85%88%E6%8E%A2%E7%B4%A2#%E6%93%AC%E4%BC%BC%E3%82%B3%E3%83%BC%E3%83%89)を見ていただくと分かりますが、「i に訪問済みの印を付ける」処理と「i を Q(キュー) に追加」する処理は、同時に行う必要があります。
|
4
4
|
|
5
|
-
しかし、ご提示のコードだと、訪問済みの印をつけているのが40行目、キューに追加するのが34, 52, 64, 76, 88行目と分かれているため、
|
5
|
+
しかし、ご提示のコードだと、訪問済みの印をつけているのが40行目、キューに追加するのが34, 52, 64, 76, 88行目と分かれているため、訪問済みの印がつかないままキュー上に同じ座標が何重にも登録されてしまい、キューのサイズが肥大化してメモリを使い果たしています。
|
6
6
|
|
7
7
|
ループごとのキューのサイズを表示するようにして、入力として大き目(上限30x30)の壁のない迷路を渡せば、キューのサイズが異常に増えることが分かると思います。
|