Comunidad Empresarial Dinamiza

 
 
  • No hay categorías

 
No te pierdas...
 

 
Publicado 01/08/2019 por admin en
 
 

자바 그래프 예제

그러나 Java 컬렉션을 사용하여 그래프를 구현할 수 있습니다. 다시 말하지만, 우리의 간단한 그래프는 편견또는 가중치가없는 가장자리가 있습니다. 대신 이러한 가장자리가 상대적인 가중치를 전달하는 경우 이 그래프를 가중치 그래프라고 합니다. 인접 성 목록은 연결된 목록의 Array[]이며 배열 크기는 그래프의 정점 수와 같습니다. 모든 정점에는 연결된 목록이 있습니다. 이 링크된 목록의 각 노드는 현재 정점과 모서리를 공유하는 다른 정점에 대한 참조를 나타냅니다. 가중치는 연결된 목록 노드에 저장할 수도 있습니다. 지금까지 정의한 그래프에는 방향이 없는 가장자리가 있습니다. 이러한 모서리에 방향이 있는 경우 결과 그래프를 방향 그래프라고 합니다.

다음은 그래프에서 가장 일반적으로 사용되는 표현입니다. 1. 인접 매트릭스 2. 인접 성 목록 같은 다른 표현도 있다, 발생 행렬 및 발생 률 목록. 그래프 표현의 선택은 상황에 따라 다릅니다. 수행할 작업 유형과 사용 편의성에 따라 완전히 달라집니다. 다음으로, 지금까지 정의한 방법을 사용하여 이전에 그린 간단한 그래프를 만드는 방법을 살펴보겠습니다. 배열의 크기는 그래프의 정점 수와 같습니다. JGraphT는 그래프 데이터 구조에 대한 자바에서 가장 인기있는 라이브러리 중 하나입니다. 그것은 다른 사람의 사이에서 간단한 그래프, 방향 그래프, 가중 그래프의 생성을 할 수 있습니다. 그래프는 다음 두 구성 요소로 구성된 데이터 구조입니다: 1.

노드라고도 하는 정점의 유한 집합입니다. 2. 가장자리라고 하는 양식(u, v)의 정렬된 쌍의 유한 집합입니다. (u, v)는 방향그래프(di-graph)의 경우 (v, u)와 같지 않기 때문에 쌍이 정렬됩니다. 폼 쌍(u, v)은 정점v에 대한 모서리가 있음을 나타냅니다. 모서리에는 중량/값/비용이 포함될 수 있습니다. 그래프는 많은 실제 응용 프로그램을 나타내는 데 사용됩니다: 그래프는 네트워크를 나타내는 데 사용됩니다. 네트워크는 도시 또는 전화 네트워크 또는 회로 네트워크의 경로를 포함할 수 있다. 그래프는 링크드 인, 페이스 북과 같은 소셜 네트워크에서도 사용됩니다. 예를 들어 Facebook에서 각 사람은 정점(또는 노드)으로 표시됩니다.

각 노드는 구조체이며 사람 ID, 이름, 성별 및 로캘과 같은 정보를 포함합니다. 그래프의 더 많은 응용 프로그램에 대 한이 참조 하십시오. Google Guava는 그래프 데이터 구조 및 알고리즘을 포함한 다양한 기능을 제공하는 Java 라이브러리 집합입니다. 장점: 공간 O(| 절약) V |+| E|) . 최악의 경우 그래프에 C(V, 2) 모서리 수가 있을 수 있으므로 O(V^2) 공간이 소모될 수 있습니다. 정점을 추가하는 것이 더 쉽습니다. 또한 그래프에서 가능한 다양한 작업과 함께 Java에서의 구현을 살펴보겠습니다. 또한 그래프 구현을 제공하는 Java 라이브러리에 대해서도 설명합니다. 다음은 정점 5인 의 지시되지 않은 그래프의 예입니다. 그러나 이 자습서의 Java 예제에 대해 여기에 제시된 간단한 그래프에만 중점을 둡니다. 이 섹션에는 홉크로프트, 평면, 부스 및 루커 알고리즘을 구현하고 그래프의 평면도를 확인하는 프로그램이 포함되어 있습니다. Java 유니버설 네트워크/그래프(JUNG)는 그래프로 나타낼 수 있는 모든 데이터의 모델링, 분석 및 시각화를 위한 확장 가능한 언어를 제공하는 Java 프레임워크입니다.

비교적, 폭 우선 통과는 임의의 루트 정점에서 시작하여 그래프에서 더 깊이 들어가기 전에 동일한 수준에서 인접한 모든 정점을 탐색합니다. 여기에서 볼 수 있듯이 클래스 그래프는 Java 컬렉션의 맵을 사용하여 인접 성 목록을 정의합니다. 좀 더 일반적인 작업 중 일부를 살펴보고 Java에서 이를 구현하는 방법을 살펴보겠습니다.


admin