我有同時接收的陣列,且所述陣列的特定實例的功能。我嘗試通過訪問其中一個成員「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