Exemplo n.º 1
0
        /*
         * Metodo criar um grafo
         */
        static void criarGrafo(bool dirigido, string[] Arquivo, ref Grafo_nao_dirigido grafo,
                               ref Grafo_dirigido digrafo)
        {
            arquivo  = new Arquivo(Arq);
            Arquivo  = arquivo.LeituraAquivo();
            dirigido = IsDirecionado(Arquivo[1]);

            if (dirigido)
            {
                digrafo = new Grafo_dirigido(Arquivo);
            }
            else
            {
                grafo = new Grafo_nao_dirigido(Arquivo);
            }
        }
Exemplo n.º 2
0
        /*
         * Método principal(main) do programa
         */
        static void Main(string[] args)
        {
            int                Menu;
            string             resposta;
            Grafo_nao_dirigido grafo = null;
            Grafo_dirigido     digrafo = null;
            Vertice            v1, v2;

            string[] Arquivo;

            Console.WriteLine("\nArquivos disponiveis para leitura: Grafo_dirigido ou Grafo_nao_dirigido");
            Console.WriteLine("\nInforme o nome do arquivo: ");
            Arq = Console.ReadLine();

            arquivo  = new Arquivo(Arq);
            Arquivo  = arquivo.LeituraAquivo();
            dirigido = IsDirecionado(Arquivo[1]);

            criarGrafo(dirigido, Arquivo, ref grafo, ref digrafo);
            if (dirigido)
            {
                string vertice;
                int    grauVertice;

                do
                {
                    Console.Clear();
                    Console.WriteLine("Escolha uma opção:\n");
                    menu(dirigido);
                    Console.WriteLine();
                    Menu = int.Parse(Console.ReadLine());
                    Console.WriteLine();

                    switch (Menu)
                    {
                    case 1:
                        PrintGrafo(digrafo);
                        break;

                    case 2:
                        Console.WriteLine("Informe o nome do vértice:");
                        vertice     = Console.ReadLine();
                        v1          = new Vertice(vertice);
                        grauVertice = digrafo.get_GrauEntrada(v1);
                        resposta    = (grauVertice == -1) ? "Vértice Inexistente" : "O grau de entrada do vértice é " + grauVertice + ".";
                        Resposta(resposta);
                        break;

                    case 3:
                        Console.WriteLine("Informe o nome do vértice:");
                        vertice     = Console.ReadLine();
                        v1          = new Vertice(vertice);
                        grauVertice = digrafo.get_GrauSaida(v1);
                        resposta    = (grauVertice == -1) ? "Vértice Inexistente" : "O grau de saída do vértice é " + grauVertice + ".";
                        Resposta(resposta);
                        break;

                    default:

                        if (Menu != 0)
                        {
                            Console.WriteLine("\nA Opção escolhida é inválida. Pressione qualquer tecla.");
                        }
                        break;
                    }
                    if (Menu != 0)
                    {
                        Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal.");
                        Console.ReadKey();
                    }
                } while (Menu != 0);
            }
            else
            {
                string vertice;
                do
                {
                    Console.Clear();
                    Console.WriteLine("Escolha uma opção:\n");
                    menu(dirigido);
                    Console.WriteLine();
                    Menu = int.Parse(Console.ReadLine());
                    Console.WriteLine();

                    switch (Menu)
                    {
                    case 1:
                        PrintGrafo(grafo);
                        break;

                    case 2:
                        string nomeVert1, nomeVert2;
                        Console.WriteLine("Informe o nome do vértice 1:");
                        nomeVert1 = Console.ReadLine();
                        Console.WriteLine("\nInforme o nome do vértice 2:");
                        nomeVert2 = Console.ReadLine();
                        v1        = new Vertice(nomeVert1);
                        v2        = new Vertice(nomeVert2);
                        resposta  = (grafo.IsAdjacente(v1, v2)) ? "Os vértices são adjacentes!" : "Os vértices não são adjacentes.";
                        Resposta(resposta);
                        break;

                    case 3:
                        int grauVertice;
                        Console.WriteLine("Informe o nome do vértice:");
                        vertice     = Console.ReadLine();
                        v1          = new Vertice(vertice);
                        grauVertice = grafo.GetGrau(v1);
                        resposta    = (grauVertice == -1) ? "Vértice Inexistente" : "O grau do vértice é " + grauVertice + ".";
                        Resposta(resposta);
                        break;

                    case 4:
                        Console.WriteLine("Informe o nome do vértice:");
                        vertice  = Console.ReadLine();
                        v1       = new Vertice(vertice);
                        resposta = (grafo.IsPendente(v1)) ? "O vértice é pendente!" : "O vértice não é pendente.";
                        Resposta(resposta);
                        break;

                    case 5:
                        resposta = (grafo.IsRegular()) ? "O grafo é regular!" : "O grafo não é regular.";
                        Resposta(resposta);
                        break;

                    case 6:
                        resposta = (grafo.IsNulo()) ? "O grafo é nulo!" : "O grafo não é nulo.";
                        Resposta(resposta);
                        break;

                    case 7:
                        resposta = (grafo.IsCompleto()) ? "O grafo é completo!" : "O grafo não é completo.";
                        Resposta(resposta);
                        break;

                    case 8:
                        resposta = (grafo.IsUnicursal()) ? "O grafo é Unicursal!" : "O grafo não é Unicursal.";
                        Resposta(resposta);
                        break;

                    case 9:
                        resposta = (grafo.IsEuleriano()) ? "O grafo é Euleriano!" : "O grafo não é Euleriano.";
                        Resposta(resposta);
                        break;

                    case 10:
                        resposta = (grafo.IsConexo()) ? "O grafo é conexo!" : "O grafo não é conexo.";
                        Resposta(resposta);
                        break;

                    default:
                        if (Menu != 0)
                        {
                            Console.WriteLine("\nA opção escolhida é inválida. Pressione qualquer tecla e tente novamente.");
                            Console.ResetColor();
                        }
                        break;
                    }
                    if (Menu != 0)
                    {
                        Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal.");
                        Console.ReadKey();
                    }
                } while (Menu != 0);
            }
        }