특정 그래프에서 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 파일은 graph.h 파일 here. 여기
나는 이미 내장 된 그래프에 액세스하려고 찾을 수 있습니다 here.
찾을 수 있습니다 adjacency list하지만 컴파일러가이 프로그램을 실행하면 오류가 발생합니다.
첨자 값이 배열도 포인터도 아니다
여기서 내가 뭘 잘못하고 있니? 또한 내 원시 DFS 구현에서 개선해야 할 사항에 대한 팁이나 제안을 보내 주시면 감사하겠습니다.
하여 붙여 넣기하여 배열의 첫 번째 그래프에서
n
을 액세서 수있는 "점", 즉하여 구조체의 요소에 액세스 할 수 있습니다 사설입니다. – yar함수 선언에서'Graph * graph'는'Graph'에 대한 포인터가 아니라'Graph'에 대한 포인터만을'graph'에 제안합니다. 따라서,'[source_id] [i]'로 두 번 다시 선언하면 작동하지 않습니다. – Evert
적어도 그래프의 정의를 질문의 어딘가에 포함 할 수 있습니다. 외부 링크는 좋은 생각이 아닙니다 (@ yar의 주석은 이유 중 하나 일뿐입니다). – Evert