# Count single node isolated sub-graphs in a disconnected graph

A disconnected Graph with N vertices and K edges is given. The task is to find the count of singleton sub-graphs. A singleton graph is one with only single vertex.

Examples:

```Input :
Vertices : 6
Edges :    1 2
1 3
5 6
Output : 1
Explanation :  The Graph has 3 components : {1-2-3}, {5-6}, {4}
Out of these, the only component forming singleton graph is {4}.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

The idea is simple for graph given as adjacency list representation. We traverse the list and find the indices(representing a node) with no elements in list, i.e. no connected components.

Below is the representation :

## C++

 `// CPP code to count the singleton sub-graphs ` `// in a disconnected graph ` `#include ` `using` `namespace` `std; ` ` `  `// Function to compute the count ` `int` `compute(vector<``int``> graph[], ``int` `N) ` `{ ` `    ``// Storing intermediate result ` `    ``int` `count = 0; ` ` `  `    ``// Traversing the Nodes ` `    ``for` `(``int` `i = 1; i <= N; i++) ` ` `  `        ``// Singleton component ` `        ``if` `(graph[i].size() == 0) ` `            ``count++;     ` ` `  `    ``// Returning the result ` `    ``return` `count; ` `} ` ` `  `// Driver ` `int` `main() ` `{ ` `    ``// Number of nodes ` `    ``int` `N = 6; ` ` `  `    ``// Adjacency list for edges 1..6 ` `    ``vector<``int``> graph; ` ` `  `    ``// Representing edges ` `    ``graph.push_back(2); ` `    ``graph.push_back(1); ` ` `  `    ``graph.push_back(3); ` `    ``graph.push_back(2); ` ` `  `    ``graph.push_back(6); ` `    ``graph.push_back(5); ` ` `  `    ``cout << compute(graph, N); ` `} `

## Java

 `// Java code to count the singleton sub-graphs  ` `// in a disconnected graph  ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to compute the count  ` `static` `int` `compute(``int` `[]graph, ``int` `N)  ` `{  ` `    ``// Storing intermediate result  ` `    ``int` `count = ``0``;  ` `     `  `    ``// Traversing the Nodes  ` `    ``for` `(``int` `i = ``1``; i < ``7``; i++)  ` `    ``{ ` `        ``// Singleton component  ` `        ``if` `(graph[i] == ``0``)  ` `            ``count++;      ` `    ``} ` `         `  `    ``// Returning the result  ` `    ``return` `count;  ` `}  ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``// Number of nodes  ` `    ``int` `N = ``6``;  ` ` `  `    ``// Adjacency list for edges 1..6  ` `    ``int` `[]graph = ``new` `int``[``7``]; ` `    ``// Representing edges  ` `    ``graph[``1``] = ``2``; ` `    ``graph[``2``] = ``1``; ` `    ``graph[``2``] = ``3``; ` `    ``graph[``3``] = ``2``; ` `    ``graph[``5``] = ``6``; ` `    ``graph[``6``] = ``5``; ` ` `  `    ``System.out.println(compute(graph, N));  ` `} ` `} ` ` `  `// This code is contributed by PrinciRaj1992  `

## Python3

 `# Python code to count the singleton sub-graphs  ` `# in a disconnected graph  ` `  `  `# Function to compute the count  ` `def` `compute(graph, N): ` `    ``# Storing intermediate result  ` `    ``count ``=` `0`  `   `  `    ``# Traversing the Nodes ` `    ``for` `i ``in` `range``(``1``, N``+``1``): ` `   `  `        ``# Singleton component  ` `        ``if` `(``len``(graph[i]) ``=``=` `0``): ` `            ``count ``+``=` `1`     `   `  `    ``# Returning the result  ` `    ``return` `count ` `   `  `# Driver  ` `if` `__name__ ``=``=` `'__main__'``: ` ` `  `    ``# Number of nodes  ` `    ``N ``=` `6`  `   `  `    ``# Adjacency list for edges 1..6  ` `    ``graph ``=` `[[] ``for` `i ``in` `range``(``7``)]  ` `   `  `    ``# Representing edges  ` `    ``graph[``1``].append(``2``)  ` `    ``graph[``2``].append(``1``)  ` `   `  `    ``graph[``2``].append(``3``)  ` `    ``graph[``3``].append(``2``)  ` `   `  `    ``graph[``5``].append(``6``)  ` `    ``graph[``6``].append(``5``)  ` `   `  `    ``print``(compute(graph, N)) `

## C#

 `// C# code to count the singleton sub-graphs  ` `// in a disconnected graph  ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to compute the count  ` `static` `int` `compute(``int` `[]graph, ``int` `N)  ` `{  ` `    ``// Storing intermediate result  ` `    ``int` `count = 0;  ` `     `  `    ``// Traversing the Nodes  ` `    ``for` `(``int` `i = 1; i < 7; i++)  ` `    ``{ ` `        ``// Singleton component  ` `        ``if` `(graph[i] == 0)  ` `            ``count++;      ` `    ``} ` `         `  `    ``// Returning the result  ` `    ``return` `count;  ` `}  ` ` `  `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``// Number of nodes  ` `    ``int` `N = 6;  ` ` `  `    ``// Adjacency list for edges 1..6  ` `    ``int` `[]graph = ``new` `int``; ` `     `  `    ``// Representing edges  ` `    ``graph = 2; ` `    ``graph = 1; ` `    ``graph = 3; ` `    ``graph = 2; ` `    ``graph = 6; ` `    ``graph = 5; ` ` `  `    ``Console.WriteLine(compute(graph, N));  ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

Output:

```1
```

This article is contributed by Rohit Thapliyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.