An undirected graph is graph, i.e, a set of objects (called vertices or nodes) that are connected together, where all the edges are bidirectional. An undirected graph is sometimes called an undirected network. In contrast, a graph where the edges point in a direction is called a directed graph.
Examples:
Input: Enter the number of Edges : 5 Output: The Generated Random Graph is : 1 -> { 5 2 } 2 -> { 1 } 3 -> { Isolated Vertex! } 4 -> { 6 } 5 -> { 1 } 6 -> { 4 10 } 7 -> { Isolated Vertex! } 8 -> { 10 } 9 -> { Isolated Vertex! } 10 -> { 8 6 } Input: Enter the number of Edges : 10 Output: The Generated Random Graph is : 1 -> { 4 9 } 2 -> { 8 } 3 -> { 8 } 4 -> { 1 6 } 5 -> { 6 } 6 -> { 10 5 8 9 4 } 7 -> { 8 } 8 -> { 7 3 6 2 } 9 -> { 1 6 } 10 -> { 6 }
Approach:
- Take the input of the number of edges for the random Directed Acyclic Graph.
- Build a connection between two random vertices iteratively.
- Assert “Isolated Vertex” if degree of a certain vertex is zero.
Implementation:
Java
// Java program to Generate a Random Undirected Graph // for a GivenNumber of Edges // importing generic packages import java.util.*; import java.util.Random; public class RandomUG { static int maxVertex = 10 ; // Function to generate random graph public static void generateRandomGraphs( int e) { int i = 0 , j = 0 , count = 0 ; int [][] edge = new int [e][ 2 ]; Random rand = new Random(); // Build a connection between two random vertex while (i < e) { edge[i][ 0 ] = rand.nextInt(maxVertex) + 1 ; edge[i][ 1 ] = rand.nextInt(maxVertex) + 1 ; // using rand to pick a random integer in range // of (1 - maxVertex) i++; } System.out.println( "The Generated Random Graph is :" ); // Print the Graph for (i = 0 ; i < maxVertex; i++) { count = 0 ; System.out.print((i + 1 ) + " -> { " ); for (j = 0 ; j < e; j++) { if (edge[j][ 0 ] == i + 1 ) { System.out.print(edge[j][ 1 ] + " " ); count++; } else if (edge[j][ 1 ] == i + 1 ) { System.out.print(edge[j][ 0 ] + " " ); count++; } // print “Isolated vertex” for the vertex // having zero degree. else if (j == e - 1 && count == 0 ) System.out.print( "Isolated Vertex!" ); } System.out.print( " }\n" ); } } public static void main(String args[]) throws Exception { int e = 6 ; System.out.println( "Enter the number of Edges : " +e); // Function to generate a Random unDirected Graph generateRandomGraphs(e); } } |
Enter the number of Edges : 6 The Generated Random Graph is : 1 -> { 8 } 2 -> { 2 } 3 -> { Isolated Vertex! } 4 -> { 5 } 5 -> { 4 6 } 6 -> { 5 } 7 -> { 9 } 8 -> { 1 10 } 9 -> { 7 } 10 -> { 8 }
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!