Посчитать количество компонент связности графа - C#
Формулировка задачи:
Дан граф. Необходимо посчитать количество его компонент связности и вывести их.
пример
input.txt
15 11
1 2
2 3
2 11
10 11
11 12
11 15
4 12
12 13
8 14
7 14
5 6
output.txt
3
Решение задачи: «Посчитать количество компонент связности графа»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var fr = File.ReadAllLines("read.txt");
var edges =
fr.Select(s => s.Split(' '))
.Select(temp => new Edge { V1 = int.Parse(temp[0]), V2 = int.Parse(temp[1]) })
.ToList();
var vertices = new List<int>();
foreach (var e in edges)
{
if (!vertices.Contains(e.V1)) vertices.Add(e.V1);
if (!vertices.Contains(e.V2)) vertices.Add(e.V2);
}
using (var sw = new StreamWriter("write.txt"))
{
foreach (var v in vertices)
{
sw.Write(v + " ");
for (var i = 0; i < edges.Count; i++)
{
if (v == edges[i].V1 || v == edges[i].V2) sw.Write(i + " ");
}
sw.WriteLine();
}
}
}
}
class Edge
{
public int V1 { get; set; }
public int V2 { get; set; }
}
}