再帰でもできるけど、再帰はスタックを使うし・・・ってことで。
最初、キューで実装できるんじゃね?って思ったが、
同じピクセルを参照するせいで無駄なメモリを食べてた。気づけよ。
そこでsetを使ったら無駄なくやってくれた。ループ数も1/20!!
実際に使うときは、塗りつぶす色かという判定を加えて、
判定に外れたら、塗りつぶしフラグをtrueにした後、continueすればできるはず。
実験コード
http://ideone.com/Gd1Kk
まとめ: Queueとか要らなかった
@追記
同じデータが何度も入らないようにするなら、キューに追加したタイミングでフラグを立てておけばいいじゃない!ってのは昨日の時点で気づいてたけど、書き直すのがめんどかった。
キューさんごめんなさい。
http://ideone.com/Mii6M