2011-01-28 3 views

답변

2

일반적으로 일차원 정수 배열은 그래프를 직관적으로 저장하는 데 사용할 수 없으며, 즉 일종의 매핑 코드가 필요하지 않습니다.

매트릭스/배열에서 그래프를 수학적으로 표현하는 일반적인 방법은 두 가지가 있습니다.

  • N x Nadjacency matrix : N 번호 정점과 M 가장자리를 가정. 이것은 2 차원 배열입니다. 각 꼭지점에는 자체 줄이 있습니다.

  • M-sizedadjacency list. 이것은 본질적으로 가장자리 목록으로 귀결되며 M x 2 배열로 구현 될 수 있습니다. 각 가장자리에는 자체 줄이 있습니다.

이러한 표현은 직관적으로 2 차원 K x L 배열입니다. 여분의 코드를 사용하여 (K * L) x 1 1 차원 배열 A에 데이터를 배치하여 1 차원 배열을 사용하십시오. 예 : 원래 K x L 배열의 (i, j) 요소를 얻을 :

e = A[i * L + j]; 

그럼 당신은 단순히 동적 배열을 할당 할 수 있습니다 사람이 명시 적 캐스트에 대해 들어와 전에

int *A = (int *)malloc(K * L * sizeof(int)); 

(, 그것은 C에서 필요 ++ 그리고 그건

관련 문제