我有同时接收的阵列,且所述阵列的特定实例的功能。我尝试通过访问其中一个成员“color”来更改数组的特定实例,但实际上并没有改变它,这可以通过调试(在主程序中运行函数之后检查颜色的值)来看到。
我希望有人可以帮助我访问此会员并进行更改。基本上我需要我指定的数组实例,如果没有别的,我希望有一个更简单的方法来完成我想要做的事情。
这里的结构:
typedef struct adjEdge{
int vertex;
struct adjEdge *next;
} adjEdge;
typedef struct vertex{
int sink;
int source;
int color; //0 will be white, 1 will be grey, 5 will be black
int number;
adjEdge *nextVertex;
} vertex;
这里是功能:
void walk(vertex *vertexArray, vertex *v, int source, maxPairing *head)
{
int i;
adjEdge *traverse;
int moveVertex;
int sink;
int correctedNumber = v->number;
traverse = vertexArray[v->number-1].nextVertex;
if(v->color != 5 && v->sink == 5)
{
sink = v->number;
v->color = 5;
addMaxPair(head, source, sink);
}
else
{
walk(vertexArray, vertexArray[traverse->vertex-1], source, head);
}
}
尤其v.color
需要递归后,后来改为5,这样,如果条件阻止它。
您使用更新的代码时遇到了什么问题?顺便说一下,recusrive调用应该改为'walk(vertexArray,&vertexArray [traverse-> vertex-1],source,head);' – Naveen
您已经照顾好了这个意见 – ZAX