Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

그래프 데이터 구조를 구현하는 Java 프로그램

<시간/>

이 기사에서는 그래프 데이터 구조를 구현하는 방법을 이해할 것입니다. HashMap 컬렉션을 사용하여 Java에서 그래프를 구현하는 그래프 데이터 구조를 구현합니다. HashMap 요소는 키-값 쌍의 형태입니다. 그래프 인접 목록을 HashMap으로 나타낼 수 있습니다.

아래는 동일한 데모입니다 -

입력이 다음과 같다고 가정 -

Number of Vertices: 5
Number of edges: 5

원하는 출력은 -

The connections between the nodes of the Graph are:
1 - 2
1 - 3
1 - 4
2 - 4
2 - 5
3 - 4
3 - 5
4 - 5

알고리즘

Step 1 - START
Step 2 - Declare an object of a Graph class namely graph_object, two integers in class ‘Edge’ namely source and destination, and two integers in ‘main’ function namely vertices_count, edges_count.
Step 3 - Define the values.
Step 4 - Initialize values for the vertices and count.
Step 5 - Create a new instance of the previously defined class.
Step 6 - Initialize the instance with relevant values.
Step 7 - Iterate over the instance using a ‘for’ loop, and display the output on the console.
Step 8 - Display the result
Step 9 - Stop

예시 1

여기에서 모든 작업을 'main' 기능 아래에 묶습니다.

public class Graph {
   class Edge {
      int source, destination;
   }
   int vertices, edges;
   Edge[] edge;
   Graph(int vertices, int edges) {
      this.vertices = vertices;
      this.edges = edges;
      edge = new Edge[edges];
      for(int i = 0; i < edges; i++) {
         edge[i] = new Edge();
      }
   }
   public static void main(String[] args) {
      int vertices_count = 5;
      int edges_count = 8;
      Graph graph_object = new Graph(vertices_count, edges_count);
      System.out.println("A graph object is defined.");
      graph_object.edge[0].source = 1;
      graph_object.edge[0].destination = 2;
      graph_object.edge[1].source = 1;
      graph_object.edge[1].destination = 3;
      graph_object.edge[2].source = 1;
      graph_object.edge[2].destination = 4;
      graph_object.edge[3].source = 2;
      graph_object.edge[3].destination = 4;
      graph_object.edge[4].source = 2;
      graph_object.edge[4].destination = 5;
      graph_object.edge[5].source = 3;
      graph_object.edge[5].destination = 4;
      graph_object.edge[6].source = 3;
      graph_object.edge[6].destination = 5;
      graph_object.edge[7].source = 4;
      graph_object.edge[7].destination = 5;
      System.out.println("The connections between the edges of the Graph are: ");
      for(int i = 0; i < edges_count; i++) {
         System.out.println(graph_object.edge[i].source + " - " + graph_object.edge[i].destination);
      }
   }
}

출력

A graph object is defined.
The connections between the edges of the Graph are:
1 - 2
1 - 3
1 - 4
2 - 4
2 - 5
3 - 4
3 - 5
4 - 5

예시 2

여기에서 객체 지향 프로그래밍을 나타내는 함수로 작업을 캡슐화합니다.

public class Graph {
   class Edge {
      int source, destination;
   }
   int vertices, edges;
   Edge[] edge;
   Graph(int vertices, int edges) {
      this.vertices = vertices;
      this.edges = edges;
      edge = new Edge[edges];
      for(int i = 0; i < edges; i++) {
         edge[i] = new Edge();
      }
   }
   static void print(Graph graph_object,int edges_count){
      System.out.println("The connections between the edges of the Graph are: ");
      for(int i = 0; i < edges_count; i++) {
         System.out.println(graph_object.edge[i].source + " - " + graph_object.edge[i].destination);
      }
   }
   static void connect_edges(Graph graph_object){
      graph_object.edge[0].source = 1;
      graph_object.edge[0].destination = 2;
      graph_object.edge[1].source = 1;
      graph_object.edge[1].destination = 3;
      graph_object.edge[2].source = 1;
      graph_object.edge[2].destination = 4;
      graph_object.edge[3].source = 2;
      graph_object.edge[3].destination = 4;
      graph_object.edge[4].source = 2;
      graph_object.edge[4].destination = 5;
      graph_object.edge[5].source = 3;
      graph_object.edge[5].destination = 4;
      graph_object.edge[6].source = 3;
      graph_object.edge[6].destination = 5;
      graph_object.edge[7].source = 4;
      graph_object.edge[7].destination = 5;
   }
   public static void main(String[] args) {
      int vertices_count = 5;
      int edges_count = 8;
      Graph graph_object = new Graph(vertices_count, edges_count);
      System.out.println("A graph object is defined.");
      connect_edges(graph_object);
      print(graph_object, edges_count);
   }
}

출력

A graph object is defined.
The connections between the edges of the Graph are:
1 - 2
1 - 3
1 - 4
2 - 4
2 - 5
3 - 4
3 - 5
4 - 5