Посчитать количество компонент связности графа - 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; }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы