我正試圖在某個圖表上做一個DFS搜索,在這裏我試圖寫下下面的代碼(我知道有很多錯誤/警告和錯誤,但這只是一個開始,我需要一些幫助)。訪問鄰接列表時使用什麼符號?
int visited[];
static int last=-1;
int record_of_visit[];
void print_dfs(Graph* graph, int source_id)
{
//printf("not yet implemented: put code for part 1 here\n");
visited[source_id]=1;
record_of_visit[++last]=source_id;
int i;
for (i=0;i<20;i++)
{
if (graph[source_id][i]==1)
{
if(visited[i] == 0)
print_dfs(graph,i);
}
}
}
實現鄰接表的graph.c文件可以發現here.
的graph.h文件可以發現here.
在這裏,我試圖訪問這是一個已經建成的圖但編譯器會給我錯誤,當我運行這個程序,指示 在if (graph[source_id][i]==1)
下標值既不是數組也不是指針
我在做什麼錯在這裏?還有什麼提示或建議,以改善我仍然原始的DFS實施,將不勝感激!
你貼在引擎收錄存取權限
n
是私人的。 – yar函數聲明中的Graph * graph表示'graph'只是指向'Graph'的指針,而不是指向'Graph'的指針。因此,使用'[source_id] [i]'解除兩次拒絕將不起作用。 – Evert
你至少可以在你的問題中包含'Graph'的定義;外部鏈接不是一個好主意(@ yar的評論只是其中一個原因)。 – Evert