gpt4 book ai didi

graphics - 我想要没有堆栈且没有递归的Flood Fill

转载 作者:行者123 更新时间:2023-12-01 13:04:19 27 4
gpt4 key购买 nike

我想知道如何在数组上应用洪水填充,我的数组是二维的,其中包含 times new roman 字体类型的字母边界。边界线包含 1,内外全为 0。我只想在内部填充所有 1 而不是 0。但我需要一个不需要更多内存的逻辑。所以避免递归和堆栈或队列

最佳答案

我通常不给别人做作业,但我喜欢挑战:

int c = -1;
while (c < 0)
{
/* Store breadcrumb trail, look to carry on */
a[x][y] = c--;
if (!hunt(0))
{
/* Nowhere to go, so back-track by looking for breadcrumb */
a[x][y] = 1;
c += 2;
hunt(c);
}
}

bool_t hunt(int v)
{
if (a[x-1][y] == v) { x--; return TRUE; }
if (a[x+1][y] == v) { x++; return TRUE; }
if (a[x][y-1] == v) { y--; return TRUE; }
if (a[x][y+1] == v) { y++; return TRUE; }
return FALSE;
}

请注意,这不会检查是否到达数组的边缘。此外,它假设您的数组元素是例如int,并且您只在图像中使用值 01

关于graphics - 我想要没有堆栈且没有递归的Flood Fill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com