Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để triển khai cấu trúc dữ liệu đồ thị

Trong bài này, chúng ta sẽ hiểu cách triển khai cấu trúc dữ liệu đồ thị. chúng tôi triển khai cấu trúc dữ liệu đồ thị, chúng tôi triển khai các biểu đồ trong Java bằng cách sử dụng bộ sưu tập HashMap. Các phần tử HashMap có dạng các cặp khóa-giá trị. Chúng tôi có thể biểu diễn danh sách gần kề của biểu đồ trong HashMap.

Dưới đây là một minh chứng về điều tương tự -

Giả sử đầu vào của chúng tôi là -

Number of Vertices: 5
Number of edges: 5

Đầu ra mong muốn sẽ là -

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

Thuật toán

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

Ví dụ 1

Ở đây, chúng tôi liên kết tất cả các hoạt động với nhau trong hàm "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);
      }
   }
}

Đầu ra

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

Ví dụ 2

Ở đây, chúng tôi đóng gói các hoạt động thành các hàm thể hiện lập trình hướng đối tượng.

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);
   }
}

Đầu ra

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