计算断开图中的单个节点隔离子图
给出了一个具有 N 个顶点和 K 个边的不连通图。任务是找到单例子图的计数。单例图是只有一个顶点的图。
例子:
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}.
对于以邻接表表示形式给出的图,这个想法很简单。我们遍历列表并找到列表中没有元素的索引(代表一个节点),即没有连接的组件。
以下是表示:
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 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 graph[7];
// Representing edges
graph[1].push_back(2);
graph[2].push_back(1);
graph[2].push_back(3);
graph[3].push_back(2);
graph[5].push_back(6);
graph[6].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[7];
// Representing edges
graph[1] = 2;
graph[2] = 1;
graph[2] = 3;
graph[3] = 2;
graph[5] = 6;
graph[6] = 5;
Console.WriteLine(compute(graph, N));
}
}
// This code is contributed by 29AjayKumar
Javascript
输出:
1