Посчитать количество компонент связности графа - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д