Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Selecione: \n 1-Grafo nao-dirigido \n 2-Grafo dirigido \n 3-Fechar ");
            string opcao1 = Console.ReadLine();
            int    opcao2 = 0;
            Grafo  matriz = new Grafo();

            Console.Clear();
            int a, b;

            if (opcao1 == "1")
            {
                while (opcao2 != 10)
                {
                    Console.WriteLine("Matriz de Adjacência:");
                    matriz.CarregarNaoDirigido("arquivo.txt");
                    matriz.PrintMatrizGrafo();
                    Console.WriteLine();
                    Console.WriteLine("OS VÉRTICES SÃO AS POSIÇOES DA MATRIZ, NAO COMEÇA EM 1, COMEÇA EM 0 \n");

                    Console.WriteLine("Menu \n 1-Verificar se os vértices são adjacentes \n 2-Grau do vertice \n 3-Verificar se o vertice é isolado \n 4-Verificar se o vertice é pendente \n 5-Verificar se o Grafo é regular \n 6-Verificar se o Grafo é nulo \n 7-Verificar se o Grafo é completo \n 8-Verificar se o Grafo é Conexo \n 9-Mostrar Grafo complementar \n 10-Sair");
                    opcao2 = int.Parse(Console.ReadLine());

                    switch (opcao2)
                    {
                    case 1:

                        Console.WriteLine("Entre com o 1º vertice:");
                        a = int.Parse(Console.ReadLine());
                        Console.WriteLine("Entre com o 2º vertice:");
                        b = int.Parse(Console.ReadLine());
                        if (matriz.isAdjacente(a, b) == true)
                        {
                            Console.WriteLine("São vertices adjacentes");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Nao são vertices adjacentes");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 2:
                        Console.WriteLine("Entre com o vertice desejado:");
                        a = int.Parse(Console.ReadLine());
                        Console.WriteLine("Vertice de grau " + matriz.getGrau(a));
                        Console.WriteLine("Aperte Enter para voltar");
                        Console.ReadKey();
                        Console.Clear();
                        break;

                    case 3:
                        Console.WriteLine("Entre com o vertice desejado:");
                        a = int.Parse(Console.ReadLine());
                        if (matriz.isIsolado(a))
                        {
                            Console.WriteLine("Vertice é Isolado");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Vertice nao é Isolado");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 4:
                        Console.WriteLine("Entre com o vertice desejado:");
                        a = int.Parse(Console.ReadLine());
                        if (matriz.isPendente(a))
                        {
                            Console.WriteLine("Vertice é pendente");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Vertice nao é pendente");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 5:

                        if (matriz.isRegular())
                        {
                            Console.WriteLine("Grafo é Regular");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Grafo nao é Regular");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 6:
                        if (matriz.isNulo())
                        {
                            Console.WriteLine("Grafo é Nulo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Grafo nao é Nulo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 7:
                        if (matriz.isCompleto())
                        {
                            Console.WriteLine("Grafo é Completo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Grafo nao é Completo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 8:
                        if (matriz.isConexo())
                        {
                            Console.WriteLine("Grafo é Conexo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        else
                        {
                            Console.WriteLine("Grafo nao é conexo");
                            Console.WriteLine("Aperte Enter para voltar");
                            Console.ReadKey();
                            Console.Clear();
                        }
                        break;

                    case 9:
                        Grafo Complementar = new Grafo();
                        Complementar = matriz.getComplementar();
                        Console.WriteLine("Aperte Enter para voltar");
                        Console.ReadKey();
                        Console.Clear();
                        break;

                    case 10:
                        Environment.Exit(0);
                        break;

                    default:
                        Environment.Exit(0);
                        break;
                    }
                }
            }
            else if (opcao1 == "2")
            {
                while (opcao2 != 3)
                {
                    Console.WriteLine("Matriz de Adjacência:");
                    matriz.CarregarDirigido("arquivo2.txt");
                    matriz.PrintMatrizGrafo();
                    Console.WriteLine();
                    Console.WriteLine("OS VÉRTICES SÃO AS POSIÇOES DA MATRIZ, NAO COMEÇA EM 1, COMEÇA EM 0 \n");
                    Console.WriteLine("Selecione: \n 1-Grau de entrada do vertice \n 2-Grau de saída do vertice \n 3-Sair");
                    opcao2 = int.Parse(Console.ReadLine());

                    switch (opcao2)
                    {
                    case 1:
                        Console.WriteLine("Entre com o vertice desejado:");
                        a = int.Parse(Console.ReadLine());
                        Console.WriteLine("Vertice possui grau de entrada " + matriz.getGrauEntrada(a));
                        Console.WriteLine("Aperte Enter para voltar");
                        Console.ReadKey();
                        Console.Clear();
                        break;

                    case 2:
                        Console.WriteLine("Entre com o vertice desejado:");
                        a = int.Parse(Console.ReadLine());
                        Console.WriteLine("Vertice possui grau de saída " + matriz.getGrauSaida(a));
                        Console.WriteLine("Aperte Enter para voltar");
                        Console.ReadKey();
                        Console.Clear();
                        break;

                    case 3:
                        Environment.Exit(0);
                        break;

                    default:
                        Environment.Exit(0);
                        break;
                    }
                }
            }
            else if (opcao1 == "3")
            {
                Environment.Exit(0);
            }
        }