Заполнение флудом с использованием стека

Я использую рекурсивный алгоритм заливки Flood в Java, чтобы заполнить некоторые области изображения. С очень маленькими изображениями это работает хорошо, но когда изображение становится больше, JVM выдает ошибку Stack Over Flow.

Вот почему я должен переопределить метод, используя Flood Fill со своим собственным стеком. (Я читал, что это лучший способ сделать это в подобных случаях)

Может кто-нибудь объяснить мне, как его кодировать? (если у вас нет кода под рукой, с псевдокодом алгоритма все будет в порядке)

Я много читал в Интернете, но не очень хорошо понял.

РЕДАКТИРОВАТЬ: я добавил свой рекурсивный код

public void floodFill(int x, int y, Color targetColor,Color replacementColor) {

    if (img.getRGB(x, y) != targetColor.getRGB()) return;

    img.setRGB(x, y, replacementColor.getRGB());
    floodFill(x - 1, y, targetColor, replacementColor);
    floodFill(x + 1, y, targetColor, replacementColor);
    floodFill(x, y - 1, targetColor, replacementColor);
    floodFill(x, y + 1, targetColor, replacementColor);

    return;

}

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос