我的函数需要更改为迭代,因为它的执行速度非常慢。
有两个递归调用,取决于哪个条件为真。
是这样的:(
我有函数之外的静态类数组,比如说数据)
void func(int a, int b, int c, int d) {
//something
//non-recursive
//here..
for (i=0; i<data.length; i++) {
if (!data[i].x) {
data[i].x = 1;
if (a == data[i].value1)
func(data[i].value2,b,c,d);
else if (a == data[i].value2)
func(data[i].value1,b,c,d);
data[i].x = 0;
}
}
}
!!
编辑:这是我的算法: http: //pastebin.com/F7UfzfHv
函数在图中搜索从一个点到另一个点的每条路径,但只返回(到数组)一个只有唯一顶点的路径。!!
而且我知道管理它的好方法是使用堆栈......但我不知道如何。有人可以给我一个提示吗?