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); } }