gpt4 book ai didi

c - 带迭代的洪水填充算法

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:35 28 4
gpt4 key购买 nike

我一直在做我的家庭作业,我需要用 c 语言编写的泛洪填充算法,但是递归、结构和任何库(stdio.h 除外)都是不允许的,我只能使用迭代。我已经为此工作了 3 天,但我做不到,我需要帮助

oldTeam(global variable) is target color

newTeam(global var.) is replacement color

x and y(both global) are row and colomn of the starting point of flood fill

pX and pY are variables to store initial coordinates of starting point

函数hasNeighbor(x,y)是搜索是否有目标颜色:

 int hasNeighbor(int x,int y)
{
if(table[x+1][y]==oldTeam || table[x+1][y+1]==oldTeam || table[x+1][y-1]==oldTeam || table[x][y+1]==oldTeam || table[x][y-1]==oldTeam || table[x-1][y]==oldTeam || table[x-1][y-1]==oldTeam || table[x-1][y+1]==oldTeam)
return 1;
else
return 0;

}

我的代码或算法哪里出错了

(在问这个问题之前,我一直在这个网站和谷歌上搜索这个主题,但我发现的解决方案包含递归、结构或不允许的库)

谢谢你..

最佳答案

遍历数组中的所有元素。根据邻居确定哪些需要更改并进行更改。跟踪您是否有任何更改,如果有任何更改,请再次执行。

bool anyChange; 
do {
anyChange = false;
... change what needs changing
} while (anyChange);

在极端情况下不是特别有效,但简单且有效。

关于c - 带迭代的洪水填充算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491748/

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