static void Main(string[] args) { int opcao = 0; Grafo grafoMA; GrafoLA grafoLA; int executar = 1; Console.Write("Qual dos Grafos deseja utilizar: \n1 - Grafo com MA \n2 - Grafo com LA"); opcao = int.Parse(Console.ReadLine()); switch (opcao) { case 1: //Grafo MA Console.Write("Digite a quantidade de vértices que terá o Grafo: "); grafoMA = new Grafo(int.Parse(Console.ReadLine())); while (executar == 1) { int escolha = EscolhaMenu(); ExecutaOpcao(ref grafoMA, escolha); Console.Write("\n\n\nDeseja fazer mais alguma coisa? \n1 - Sim \n2 - Não \nEscolha:"); executar = int.Parse(Console.ReadLine()); } break; case 2: // Grafo LA grafoLA = new GrafoLA(); while (executar == 1) { int escolha = EscolhaMenuLA(); ExecutaOpcaoLA(ref grafoLA, escolha); Console.Write("\n\n\nDeseja fazer mais alguma coisa? \n1 - Sim \n2 - Não \nEscolha:"); executar = int.Parse(Console.ReadLine()); } break; default: break; } }
public static void ExecutaOpcaoLA(ref GrafoLA grafo, int escolha) { Console.Clear(); switch (escolha) { case 1: //Ordem Console.Write("A ordem desse grafo é: " + grafo.Ordem()); break; case 2: //Inserir Vertice if (grafo.InserirVertice(grafo.GetNome())) { Console.Write("Vertice inserido com sucesso"); } else { Console.Write("Vertice não inserido."); } break; case 3: //Remover Vertce Console.WriteLine("Escolha qual vértice deseja remover: "); grafo.NomesVertices(); Vertice vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); if (grafo.RemoverVertice(vertice)) { Console.Write("Vertice removido com sucesso"); } else { Console.Write("Vertice não removido."); } break; case 4: //Insere Aresta Console.WriteLine("Escolha quais vértices deseja inserir uma aresta: "); grafo.NomesVertices(); Console.Write("Vértice 1: "); Vertice v1 = grafo.GetVertice(int.Parse(Console.ReadLine())); Console.Write("Vértice 2: "); Vertice v2 = grafo.GetVertice(int.Parse(Console.ReadLine())); grafo.InserirAresta(v1, v2); break; case 5: //Remove Aresta Console.WriteLine("Escolha quais vértices deseja remover uma aresta: "); grafo.NomesVertices(); Console.Write("Vértice 1: "); v1 = grafo.GetVertice(int.Parse(Console.ReadLine())); Console.Write("Vértice 2: "); v2 = grafo.GetVertice(int.Parse(Console.ReadLine())); grafo.RemoverAresta(v1, v2); break; case 6: //Grau do vértice Console.WriteLine("Escolha qual vértice deseja saber o grau: "); grafo.NomesVertices(); Console.Write("Vértice: "); Vertice vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); Console.Write("O grau do vértice v" + vertice.Nome + " é: " + grafo.Grau(vertice)); break; case 7: //Grafo Completo if (grafo.Completo()) { Console.Write("O grafo está completo."); } else { Console.Write("O grafo está incompleto."); } break; case 8: //Grafo Regular if (grafo.Regular()) { Console.Write("O grafo é regular."); } else { Console.Write("O grafo é irregular."); } break; case 9: //Lista de Adjacência grafo.ShowLA(); break; case 10: //Sequência de Graus Console.WriteLine("Sequência de graus do Grafo:"); grafo.SequenciaGraus(); break; case 11: //Vértices adjacentes de um vértice Console.WriteLine("Escolha qual vértice deseja ver os vértices adjcentes: "); grafo.NomesVertices(); vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); grafo.VerticesAdjacentes(vertice); break; case 12: //Vertice isolado Console.WriteLine("Escolha qual vértice deseja verificar se é isolado: "); grafo.NomesVertices(); vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); if (grafo.Isolado(vertice)) { Console.WriteLine("Esse vertice é Isolado."); } else { Console.WriteLine("Esse vertice não é Isolado."); } break; case 13: //Par Console.WriteLine("Escolha qual vértice deseja verificar se é par: "); grafo.NomesVertices(); vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); if (grafo.Par(vertice)) { Console.WriteLine("O vertice informado é Par."); } else { Console.WriteLine("O vertice informado não é Par."); } break; case 14: //Impar Console.WriteLine("Escolha qual vértice deseja verificar se é impar: "); grafo.NomesVertices(); Console.WriteLine("Informe o vertice para verificação: "); vertice = grafo.GetVertice(int.Parse(Console.ReadLine())); if (grafo.Impar(vertice)) { Console.WriteLine("O vertice informado é Impar."); } else { Console.WriteLine("O vertice informado não é Impar."); } break; case 15: //Adjacência entre 2 vértices Console.WriteLine("Escolha quais vértices deseja verificar se há adjacência entre eles: "); grafo.NomesVertices(); Console.WriteLine("Vertice 1:"); v1 = grafo.GetVertice(int.Parse(Console.ReadLine())); Console.WriteLine("Vertice 2:"); v2 = grafo.GetVertice(int.Parse(Console.ReadLine())); if (grafo.Adjacentes(v1, v2)) { Console.WriteLine("Os vertices informados são adjacentes!"); } else { Console.WriteLine("Os vertices informados não são adjacentes."); } break; default: Console.Write("Nenhuma opção válida escolhida."); break; } }