Remplissage à l'aide d'une pile

Je suis en utilisant la récursivité remplissage de l'algorithme en Java afin de combler certaines zones d'une image.
Avec de très petites images, il fonctionne très bien, mais quand de l'image devient plus grand, la JVM me donne un tas Sur le Flux d'Erreur.

C'est la raison pour laquelle j'ai réimplémenter la méthode à l'aide d'un pot de peinture avec mon propre pile. (J'ai lu que c'est la meilleure façon de le faire dans ce genre de cas)

Quelqu'un peut-il m'expliquer comment code? (si vous n'avez pas le code à la main, avec le pseudo-code de l'algorithme sera très bien)

J'ai lu beaucoup de choses sur Internet mais je ne l'ai pas compris très bien.

EDIT: j'ai ajouté mon code récursif

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;

}

Merci!

Wikipédia: Inondation algorithme de remplissage
Si vous deviez afficher votre code existant (ou un résumé de celui-ci), quelqu'un pourrait être en mesure de vous dire comment l'écrire d'une manière qui n'est pas récursive, si c'est ce que vous êtes après.
Je vous conseille de choisir l'un de la file d'attente basé sur des algorithmes qui y sont présentées, elles sont plus faciles à mettre en œuvre que d'une pile à base de solution, à mon avis.
Merci pour la réponse, j'ai essayé de mettre en œuvre avec l'explication de Wikipedia, mais je ne sais pas comment. C'est la raison pour laquelle je fais ici une question. Si quelqu'un pourrait-il m'expliquer avec d'autres mots, je serai très reconnaissant.

OriginalL'auteur dafero | 2010-05-06