Bitişiklik matrisini oxuyuruq və ondan bitişiklik siyahısını qururuq. Sonra onu çıxış edirik.
Nümunə
Misaldakı qraf aşağıdakı kimidir.
Alqoritmin tətbiqi
Qrafın bitişiklik siyahısını elan edək.
vector<vector<int> > g;Giriş məlumatlarını oxuyuruq. Qrafın zirvələri -dən -ə qədər nömrələnir. Bitişiklik siyahısını qururuq.
scanf("%d", &n);
g.resize(n + 1);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
{
scanf("%d", &val);
if (val) g[i].push_back(j);
}Bitişiklik siyahısını çıxış edirik.
for (i = 1; i <= n; i++)
{
printf("%d", g[i].size());
for (int x : g[i])
printf(" %d", x);
printf("\n");
}Java tətbiqi — ArrayList array-i
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
ArrayList<Integer>[] g = new ArrayList[n+1]; // unchecked
for (int i = 0; i <= n; i++)
g[i] = new ArrayList<Integer>();
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
int val = con.nextInt();
if (val == 1) g[i].add(j);
}
for (int i = 1; i <= n; i++)
{
System.out.print(g[i].size());
for (int j = 0; j < g[i].size(); j++)
System.out.print(" " + g[i].get(j));
System.out.println();
}
con.close();
}
}Java tətbiqi — ArrayList of ArrayList
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
//Scanner con = new Scanner(new FileReader ("3981.in"));
Scanner con = new Scanner(System.in);
int n = con.nextInt();
ArrayList<ArrayList<Integer>> g =
new ArrayList<ArrayList<Integer>>();
for (int i = 0; i <= n; i++)
g.add(new ArrayList<Integer>());
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
int val = con.nextInt();
if (val == 1) g.get(i).add(j);
}
//System.out.println(g);
for (int i = 1; i <= n; i++)
{
System.out.print(g.get(i).size());
for (int j = 0; j < g.get(i).size(); j++)
System.out.print(" " + g.get(i).get(j));
System.out.println();
}
con.close();
}
}Python tətbiqi
Zirvə sayını oxuyuruq. Bitişiklik siyahısını elan edək.
n = int(input())
g = [[] for _ in range(n + 1)]Bitişiklik matrisini oxuyuruq və bitişiklik siyahısını qururuq. Qrafın zirvələri -dən -ə qədər nömrələnir.
for i in range(1, n + 1):
row = list(map(int, input().split()))
for j in range(1, n + 1):
if row[j - 1]:
g[i].append(j)Bitişiklik siyahısını çıxış edirik.
for i in range(1, n + 1):
print(len(g[i]), *g[i])