public static void RelatorioDirecionado() { string nomeArquivo = ""; string[] linhas = File.ReadLines("./files/" + nomeArquivo).ToArray(); Grafo grafo = Grafo.CriarGrafo(linhas); Vertice v1 = grafo.GetVertice("1"); Vertice v2 = grafo.GetVertice("2"); Console.WriteLine("O vértice {0} tem grau de entrada: {1}", v1.Id, grafo.GetGrauEntrada(v1)); Console.WriteLine("O vértice {0} tem grau de sapida: {1}", v1.Id, grafo.GetGrau(v2)); Console.WriteLine("O grafo possui ciclo: " + grafo.HasCiclo()); }
// -> Retorna uma lista de cut-vertices para o grafo this public List <Vertice> GetCutVertices() { List <Vertice> cutVertices = new List <Vertice>(); this.Vertices.ForEach(v => { Grafo auxGrafo = Grafo.CriarGrafo(this.ArquivoGerador); Vertice auxVertice = auxGrafo.GetVertice(v.Id); auxGrafo.RemoverVertice(auxVertice); if (!auxGrafo.IsConexo()) { cutVertices.Add(v); } }); return(cutVertices); }
static void Main(string[] args) { string caminhoArquivo = "arquivo.txt"; string[] linhas = File.ReadLines("./arquivos/" + caminhoArquivo).ToArray(); // string[] linhas = { // "Introduçao_a_Pesquisa Paulo 4", // "Introduçao_a_Pesquisa Paulo 4", // "Grafos Michelle 4", // "Redes Michelle 4", // "Engenharia_de_Requisitos Michelle 4", // "Politicas Adriano 4", // "POO Paulo 2", // "BD Claudiney 4", // "ATP Faber 1", // }; Grafo grafo = Grafo.CriarGrafo(linhas); // -> Irá iniciar com o primeiro vértice lido do arquivo grafo.ObterColoracao(grafo.GetProfessor("1")); System.Console.WriteLine("\nOrdenação por cores\n"); grafo.OrdernarProfessoresCores(); grafo.ListarProfessor(); System.Console.WriteLine("\nOrdenação por perídos\n"); grafo.OrdernarProfessores(); grafo.ListarProfessor(); System.Console.WriteLine(); grafo.ImprimirTabela(); System.Console.WriteLine(); Console.WriteLine("Quantidade de de horários necessários para alocar todas as disciplinas: " + grafo.ObterQuantidadeCores()); Console.ReadLine(); }
public static void RelatorioNaoDirecionado() { string nomeArquivo = "completo3.txt"; string[] linhas = File.ReadLines("./files/ArquivosNaoDirigidos/" + nomeArquivo).ToArray(); Grafo grafo = Grafo.CriarGrafo(linhas); Grafo grafoP = Grafo.CriarGrafo(linhas); Grafo grafoK = Grafo.CriarGrafo(linhas); Vertice v1 = grafo.GetVertice("1"); Vertice v2 = grafo.GetVertice("2"); Vertice vk = grafoP.GetVertice("1"); Vertice vp = grafoK.GetVertice("1"); // -> PARA GRAFOS NÃO DIRECIONADO Console.WriteLine("{0} e {1} são adjacente: {2}", v1.Id, v2.Id, grafo.IsAdjacente(v1, v2)); Console.WriteLine("O vértice {0} tem grau: {1}", v1.Id, grafo.GetGrau(v1)); Console.WriteLine("O vértice {0} é isolado: {1}", v1.Id, grafo.IsIsolado(v1)); Console.WriteLine("O vértice {0} é pendente: {1}", v1.Id, grafo.IsPendente(v1)); Console.WriteLine("O grafo é regular: " + grafo.IsRegular()); Console.WriteLine("O grafo é nulo: " + grafo.IsNulo()); Console.WriteLine("O grafo é completo: " + grafo.IsCompleto()); Console.WriteLine("O grafo é conexo: " + grafo.IsConexo()); Console.WriteLine("O grafo é euleriano: " + grafo.IsEuleriano()); Console.WriteLine("O grafo é unicursal: " + grafo.IsUnicursal()); Console.WriteLine("A quantidade de cut-vértices é: " + grafo.GetCutVertices().Count); grafo.GetCutVertices().ForEach(v => Console.WriteLine(v.Id)); grafoP.GetAGMPrim(vp); System.Console.WriteLine(); System.Console.WriteLine(); grafoK.GetAGMKruskal(vk); }