今は再帰処理を使って、countで数え上げるプログラムです。
しかし、画像が少し大きくなるとStackOverflowExceptionを起こしてしまいます。
ソースコードは下記のとおりです。
C#
1int Expansion(int y, int x) 2 { 3 if ((x >= width) || (x < 0) || (y >= height) || (y < 0)) return 1; 4 if (x < width && x >= 0 && y < height && y >= 0) 5 { 6 if (img.GetPixel(x, y) == Black) 7 { 8 return 1; 9 } 10 else 11 { 12 img.SetPixel(x, y, Black); 13 return (Expansion(y + 1, x) + Expansion(y - 1, x) + 14 Expansion(y + 1, x + 1) + Expansion(y - 1, x + 1) + 15 Expansion(y + 1, x - 1) + Expansion(y - 1, x - 1) + 16 Expansion(y, x + 1) + Expansion(y, x - 1)); 17 } 18 } 19 else return 1; 20 }
この再帰処理をスタック、もしくはキューで書き換えたいです。
具体的なプログラムがあると、助かります。
何卒お力添えいただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/05 03:29
2017/07/05 05:03
2017/07/05 05:11
2017/07/05 05:16
2017/07/05 05:27
2017/07/05 16:19