2011-10-22 6 views
3

나는 직접 비가 위 그래프를 사용했다. 노드 수와 노드 간의 모든 링크가 제공됩니다. 벡터 배열로 작업을 시도했지만 자바 지원하지 않습니다. ArrayList와 Vectors는 랜덤 억세스 반복자를 지원하지만, 새로운 것으로는 java에서 할 수 없습니다. 나는 2 차원 행렬을 사용하고 싶지 않다. 각 노드에 연결되어있는 노드의 목록이있는 N 개의 주어진 노드의 배열로 구현하고 싶습니다. 제발 누군가 제게 도움이 될만한 의사 코드를 제공하십시오. 예를 들어, 그래프는코어 자바에서 그래프를 구현하는 방법은 무엇입니까?

5 
3 4 
4 2 
1 5 
4 3 
1 3 
2 5 

여기서 5 개의 노드는 1에서 5까지 주어진다. 다음은 첫 번째 노드에서 두 번째 노드로 향하는 에지입니다. 그래프의 인접 목록으로 표현하고 싶습니다. 아무도 그것의 구현을 줄 수 있습니까?

+2

: 다음은 자사의 튜토리얼 링크입니다. 또한 Collections 라이브러리 (ArrayLists, Vectors, ...)와 같은 Java 라이브러리에 대한 지식이 부족하여 방해가되는 경우, 모든 유용한 자습서를 위해 Google에서 이러한 유용한 도구를 사용할 수 있습니다. 또한 관련 콘텐츠 링크는 그래프 생성 및 조작을 위해 특별히 제작 된 타사 라이브러리에 대해 알려줍니다. –

+0

이 사이트뿐만 아니라 Google에서도이 검색을 수행했지만 찾지 못했습니다. 마침내 나는 내 자신의 질문을해야한다. 또한 제 3 자 라이브러리를 사용하고 싶지 않습니다. –

+0

다시 시작해야하는 방법과 얻을 수있는 지식 기반을 알려주는 경우에도 관련 콘텐츠가 유용 할 것입니다. 그래도 과제를 파악할 수 없더라도 정보는 적어도 지식이 풍부하고 구체적인 질문을 작성하는 데 도움이됩니다. –

답변

4

adjacency list, 예컨대 Map<Node, List<Node>> 또는 List<List<Node>>이 적합 할 수있다.

부록 : 자바 Collections를 사용하여, 당신이 당신의 데이터를 사용하여 구현하려는 알고리즘의 요구 사항에 따라 implementations 특정 선택 할 수있는 반면 MapList가, 특성 방법을 제공 interfaces를 참고하는 것이 도움이 될 수 있습니다 구조.

부록 : 관련 사례 here이 있습니다.

+0

예, arraylist의 arraylist와 인접 목록을 사용하여 시도했지만 iterators로 값을 삽입 할 수 없습니다. –

+1

아, 문제를 설명하는 [sscce] (http://sscce.org/)를 포함하도록 질문을 편집하고 싶습니다. – trashgod

+0

위의 예와 관련이 있습니다. – trashgod

1

많은 컬렉션 데이터 구조, 특히 해시 테이블 또는 세트를 용도에 맞게 사용할 수 있습니다. Java는 많은 컬렉션 제네릭 컨테이너 (HashMap-s, ArrayList-s 등)를 제공합니다. Java 전문가가 아니지만 Java Collections을 검색하면 많은 결과를 얻을 수 있습니다. this tutorial

1

직선 사용이 아닌 지시되지 않은 가중치 그래프의 구현을 요구하는 것은 나쁘다. 그렇지 않으면 JUNG2라는 네트워크/그래프와 관련된 거의 모든 것에 대해 쉽게 제작 된 프레임 워크를 사용하도록 제안합니다. GUI 또는 비 GUI 모드에서 사용할 수 있습니다. 그것은 당신에게 많은 시간을 절약 할 수 있습니다. 이 페이지의 오른쪽 하단에 열에 나열되어 유래에 관련 내용을보고 할 수 있습니다

http://www.grotto-networking.com/JUNG/JUNG2-Tutorial.pdf

관련 문제