Java Program to Represent Graph Using 2D Arrays

«
»
This is a java program to represent graph as a 2D array. Nodes are arranged in matrix and at an index of i, j zero is displayed if nodes i and j are not connected, one otherwise.

Here is the source code of the Java Program to Represent Graph Using 2D Arrays. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

  1. //This is a java program to represent graph as a two d array
  2. import java.util.Scanner;
  3.  
  4. public class Represent_Graph_TwoD_Array 
  5. {
  6.     private final int vertices;
  7.     private int[][] twoD_array;
  8.  
  9.     public Represent_Graph_TwoD_Array(int v) 
  10.     {
  11.         vertices = v;
  12.         twoD_array = new int[vertices + 1][vertices + 1];
  13.     }
  14.  
  15.     public void makeEdge(int to, int from, int edge) 
  16.     {
  17.         try 
  18.         {
  19.             twoD_array[to][from] = edge;
  20.         }
  21.         catch (ArrayIndexOutOfBoundsException index) 
  22.         {
  23.             System.out.println("The vertices does not exists");
  24.         }
  25.     }
  26.  
  27.     public int getEdge(int to, int from) 
  28.     {
  29.         try 
  30.         {
  31.             return twoD_array[to][from];
  32.         }
  33.         catch (ArrayIndexOutOfBoundsException index) 
  34.         {
  35.             System.out.println("The vertices does not exists");
  36.         }
  37.         return -1;
  38.     }
  39.  
  40.     public static void main(String args[]) 
  41.     {
  42.         int v, e, count = 1, to = 0, from = 0;
  43.         Scanner sc = new Scanner(System.in);
  44.         Represent_Graph_TwoD_Array graph;
  45.         try 
  46.         {
  47.             System.out.println("Enter the number of vertices: ");
  48.             v = sc.nextInt();
  49.             System.out.println("Enter the number of edges: ");
  50.             e = sc.nextInt();
  51.  
  52.             graph = new Represent_Graph_TwoD_Array(v);
  53.  
  54.             System.out.println("Enter the edges: <to> <from>");
  55.             while (count <= e) 
  56.             {
  57.                 to = sc.nextInt();
  58.                 from = sc.nextInt();
  59.  
  60.                 graph.makeEdge(to, from, 1);
  61.                 count++;
  62.             }
  63.  
  64.             System.out.println("The two d array for the given graph is: ");
  65.             System.out.print("  ");
  66.             for (int i = 1; i <= v; i++)
  67.                 System.out.print(i + " ");
  68.             System.out.println();
  69.  
  70.             for (int i = 1; i <= v; i++) 
  71.             {
  72.                 System.out.print(i + " ");
  73.                 for (int j = 1; j <= v; j++) 
  74.                     System.out.print(graph.getEdge(i, j) + " ");
  75.                 System.out.println();
  76.             }
  77.  
  78.         }
  79.         catch (Exception E) 
  80.         {
  81.             System.out.println("Something went wrong");
  82.         }
  83.         sc.close();
  84.     }
  85. }

Output:

advertisement
$ javac Represent_Graph_TwoD_Array.java
$ java Represent_Graph_TwoD_Array
 
Enter the number of vertices: 
4 
Enter the number of edges: 
5
Enter the edges: <to> <from>
1 2
2 3 
3 4
1 3
1 4
The two d array for the given graph is: 
  1 2 3 4 
1 0 1 1 1 
2 0 0 1 0 
3 0 0 0 1 
4 0 0 0 0

Sanfoundry Global Education & Learning Series – 1000 Java Programs.

advertisement
advertisement

Here’s the list of Best Reference Books in Java Programming, Data Structures and Algorithms.

Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!
advertisement
advertisement
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He is Linux Kernel Developer & SAN Architect and is passionate about competency developments in these areas. He lives in Bangalore and delivers focused training sessions to IT professionals in Linux Kernel, Linux Debugging, Linux Device Drivers, Linux Networking, Linux Storage, Advanced C Programming, SAN Storage Technologies, SCSI Internals & Storage Protocols such as iSCSI & Fiber Channel. Stay connected with him @ LinkedIn | Youtube | Instagram | Facebook | Twitter