Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        // -> 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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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);
        }