Flood fill
Z Wikipedii
Flood fill to algorytm używany np. w programach graficznych do wypełniania zamkniętych obszarów bitmapy kolorem. Korzysta z kolejki lub stosu.
Algorytm potrzebuje trzech parametrów: początkową pozycję, zamieniany kolor i nowy kolor.
Algorytm rekursywny (oparty na stosie):
funkcja flood_fill (pozycja,zamieniany_kolor,nowy_kolor) { jeżeli (kolor_na_pozycji(pozycja) = zamieniany_kolor) { ustaw_kolor(pozycja, nowy_kolor); flood_fill(lewo(pozycja),zamieniany_kolor,nowy_kolor); flood_fill(prawo(pozycja),zamieniany_kolor,nowy_kolor); flood_fill(góra(pozycja),zamieniany_kolor,nowy_kolor); flood_fill(dół(pozycja),zamieniany_kolor,nowy_kolor); } }
W praktyce, aby zmniejszyć koszty obsługi stosu, poruszanie się od lewej do prawej realizuje się w pętli.