//Programa principal de GrafoLA public static void GrafoLAProgram() { int opc, v, v2; GrafoLA grafo; Console.Clear(); Console.Write("Digite o número inical de vertices: "); v = int.Parse(Console.ReadLine()); grafo = new GrafoLA(v); do { Console.WriteLine("\n-------- GRAFOS ----------"); Console.WriteLine("1 - Inserir aresta"); Console.WriteLine("2 - Existe aresta ?"); Console.WriteLine("3 - Retira aresta"); Console.WriteLine("4 - Insere vertice ?"); Console.WriteLine("5 - Retira vertice"); Console.WriteLine("6 - ShowLA"); Console.WriteLine("7 - Imprimir Adjacentes"); Console.WriteLine("8 - Ordem"); Console.WriteLine("9 - grau"); Console.WriteLine("10 - ShowMA"); Console.WriteLine("11 - Grafo eh Completo ?"); Console.WriteLine("12 - Grafo eh Regular?"); Console.WriteLine("13 - Sequencia de Grau"); Console.WriteLine("14 - Impar"); Console.WriteLine("15 - Par"); Console.WriteLine("16 - Isolado"); Console.WriteLine("17 - Adjacentes"); Console.WriteLine("==> "); opc = int.Parse(Console.ReadLine()); switch (opc) { case 1: Console.Write("Digite as duas vertices para ligação: "); v = int.Parse(Console.ReadLine()); v2 = int.Parse(Console.ReadLine()); Console.Clear(); grafo.InsereAresta(v, v2); break; case 2: Console.Write("Digite as duas vertices: "); v = int.Parse(Console.ReadLine()); v2 = int.Parse(Console.ReadLine()); Console.Clear(); if (grafo.ExisteAresta(v, v2)) { Console.WriteLine("Existe a aresta"); } else { Console.WriteLine("Não existe a aresta"); } break; case 3: Console.Write("Digite os dois vertices: "); v = int.Parse(Console.ReadLine()); v2 = int.Parse(Console.ReadLine()); Console.Clear(); grafo.RetiraAresta(v, v2); break; case 4: Console.Write("Digite o vertices: "); v = int.Parse(Console.ReadLine()); Console.Clear(); grafo.IncereVertice(v); break; case 5: Console.Write("Digite o vertices: "); v = int.Parse(Console.ReadLine()); Console.Clear(); grafo.RetiraVertice(v); break; case 6: Console.Clear(); grafo.ImprimiLA(); break; case 7: Console.Write("Digite o vertices: "); v = int.Parse(Console.ReadLine()); Console.Clear(); grafo.ListaDeAdjacente(v); break; case 8: int a; a = grafo.Ordem(); Console.Clear(); Console.WriteLine("\nOrdem eh: " + a); break; case 9: int c; Console.Clear(); Console.Write("Digite o vertices: "); v = int.Parse(Console.ReadLine()); c = grafo.Grau(v); Console.Clear(); Console.WriteLine("\nO grau eh: " + c); break; case 10: Console.Clear(); grafo.ImprimiiMA(); break; case 11: Console.Clear(); if (grafo.Completo()) { Console.WriteLine("O grafo eh Completo"); } else { Console.WriteLine("O grafo nao eh Completo"); } break; case 12: Console.Clear(); if (grafo.Regular()) { Console.WriteLine("O grafo eh Regular"); } else { Console.WriteLine("O grafo nao eh Regular"); } break; case 13: Console.Clear(); grafo.SequenciaGraus(); break; case 14: Console.Clear(); Console.Write("Digite o vértice que deseja verificar: "); v = int.Parse(Console.ReadLine()); if (grafo.Impar(v)) { Console.Write("O vértice é ímpar"); } else { Console.Write("O vértice não é ímpar"); } break; case 15: Console.Clear(); Console.Write("Digite o vértice que será verificado: "); v = int.Parse(Console.ReadLine()); if (grafo.Par(v)) { Console.WriteLine("O vertice é par!"); } else { Console.WriteLine("O vertice não é par!"); } break; case 16: Console.Clear(); Console.Write("Qual vertice será verificado? "); v = int.Parse(Console.ReadLine()); if (grafo.Isolado(v)) { Console.WriteLine("O vertice é Isolado!"); } else { Console.WriteLine("O vértice não é isolado"); } break; case 17: Console.Clear(); Console.Write("Digite o 1º vértice: "); v = int.Parse(Console.ReadLine()); Console.Write("Digite o 2º vértice: "); v2 = int.Parse(Console.ReadLine()); if (grafo.Adjacentes(v, v2)) { Console.Write("Os vértices são adjacentes"); } else { Console.Write("Os vértices não são adjacentes"); } break; } } while (opc != 10); }
static void Main(string[] args) { int op, op2; Menu menu = new Menu(); GrafoMA grafoMA = new GrafoMA(0); GrafoLA grafoLa = new GrafoLA(); bool grafoMAInstanciado = false; do { menu.MenuPrincipal(); op = int.Parse(Console.ReadLine()); if (op == 1) { int v1, v2; //Instaciação do grafo com a quantidade de vertices desejados if (!grafoMAInstanciado) { Console.Write("Digite a quantidade vértices desejado: "); int qtVertices = int.Parse(Console.ReadLine()); grafoMA = new GrafoMA(qtVertices); grafoMAInstanciado = true; } do { Console.Clear(); menu.MenuGrafoMA(); op2 = int.Parse(Console.ReadLine()); } while (op2 < 0 || op2 > 14); if (op2 == 1) { Console.WriteLine(grafoMA.Ordem()); } else if (op2 == 2) { Console.Write("Digite o primeiro vértice adjacente a aresta que deseja inserir: "); v1 = int.Parse(Console.ReadLine()); Console.Write("Digite o segundo vértice adjacente a aresta que deseja inserir: "); v2 = int.Parse(Console.ReadLine()); if (grafoMA.InserirAresta(v1, v2)) { Console.WriteLine("Aresta inserida com sucesso"); } else { Console.WriteLine("Aresta não foi inserida com sucesso pois vértices são inexistentes ou já existe aresta"); } } else if (op2 == 3) { Console.Write("Digite o primeiro vértice adjacente a aresta que deseja inserir: "); v1 = int.Parse(Console.ReadLine()); Console.Write("Digite o segundo vértice adjacente a aresta que deseja inserir: "); v2 = int.Parse(Console.ReadLine()); if (grafoMA.RemoverAresta(v1, v2)) { Console.WriteLine("Aresta removida com sucesso"); } else { Console.WriteLine("Aresta não foi removida com sucesso pois vértices são inexistentes ou não existe aresta"); } } else if (op2 == 4) { Console.Write("Digite o vértice que deseja verificar o grau: "); v1 = int.Parse(Console.ReadLine()); Console.WriteLine(grafoMA.Grau(v1)); } else if (op2 == 5) { if (grafoMA.Completo()) { Console.WriteLine("Grafo é completo."); } else { Console.WriteLine("Grafo não é completo."); } } else if (op2 == 6) { if (grafoMA.Regular()) { Console.WriteLine("Grafo é regular."); } else { Console.WriteLine("Grafo não é regular."); } } else if (op2 == 7) { grafoMA.ShowMA(); } else if (op2 == 8) { grafoMA.ShowLA(); } else if (op2 == 9) { grafoMA.SequenciaGraus(); } else if (op2 == 10) { Console.Write("Digite o vértice que deseja verificar os vértices adjacentes: "); v1 = int.Parse(Console.ReadLine()); grafoMA.VerticesAdjacentes(v1); } else if (op2 == 11) { Console.Write("Digite o vértice que deseja verificar se é isolado: "); v1 = int.Parse(Console.ReadLine()); if (grafoMA.Isolado(v1)) { Console.WriteLine("Vértices é isolado"); } else { Console.WriteLine("Vértices não é isolado"); } } else if (op2 == 12) { Console.Write("Digite o vértice que deseja verificar se é impar: "); v1 = int.Parse(Console.ReadLine()); if (grafoMA.Impar(v1)) { Console.WriteLine("Vértices é impar"); } else { Console.WriteLine("Vértices não é impar"); } } else if (op2 == 13) { Console.Write("Digite o vértice que deseja verificar se é par: "); v1 = int.Parse(Console.ReadLine()); if (grafoMA.Par(v1)) { Console.WriteLine("Vértices é par"); } else { Console.WriteLine("Vértices não é par"); } } else if (op2 == 14) { Console.Write("Digite o primeiro vértice que deseja verificar: "); v1 = int.Parse(Console.ReadLine()); Console.Write("Digite o segundo vértice que deseja verificar: "); v2 = int.Parse(Console.ReadLine()); if (grafoMA.Adjacentes(v1, v2)) { Console.WriteLine("Vértices são adjacentes"); } else { Console.WriteLine("Vértices não são adjacentes"); } } } else if (op == 2) { do { Console.Clear(); menu.MenuGrafoLA(); op2 = int.Parse(Console.ReadLine()); } while (op2 < 0 || op2 > 16); if (op2 == 1) { Console.WriteLine(grafoLa.Ordem()); } else if (op2 == 2) { Console.Write("Digite o numero do vértice deseja inserir: "); if (!grafoLa.InserirVertice(int.Parse(Console.ReadLine()))) { Console.WriteLine("Vertice ja existe"); } else { Console.WriteLine("Inserido com sucesso"); } } else if (op2 == 3) { Console.Write("Digite o numero do vértice deseja remover: "); if (!grafoLa.RemoverVertice(int.Parse(Console.ReadLine()))) { Console.WriteLine("Vertice ja existe"); } else { Console.WriteLine("Removido com sucesso"); } } else if (op2 == 4) { Console.Write("Digite o numero do primeiro vértice da aresta: "); var primeiro = int.Parse(Console.ReadLine()); Console.Write("Digite o numero do segundo vértice da aresta: "); var segundo = int.Parse(Console.ReadLine()); if (!grafoLa.InserirAresta(primeiro, segundo)) { Console.WriteLine("Aresta ja existe"); } else { Console.WriteLine("Inserido com sucesso"); } } else if (op2 == 5) { Console.Write("Digite o numero do primeiro vértice da aresta: "); var primeiro = int.Parse(Console.ReadLine()); Console.Write("Digite o numero do segundo vértice da aresta: "); var segundo = int.Parse(Console.ReadLine()); if (!grafoLa.RemoverAresta(primeiro, segundo)) { Console.WriteLine("Aresta não existe"); } else { Console.WriteLine("Removido com sucesso"); } } else if (op2 == 6) { Console.Write("Digite o numero vértice: "); Console.WriteLine($"O grau do vertice é {grafoLa.Grau(int.Parse(Console.ReadLine()))}"); } else if (op2 == 7) { if (grafoLa.Completo()) { Console.Write("\nO grafo é completo "); } else { Console.Write("\nO grafo não é completo"); } } else if (op2 == 8) { if (grafoLa.Regular()) { Console.Write("\nO grafo é regular "); } else { Console.Write("\nO grafo não é regular"); } } else if (op2 == 9) { grafoLa.ShowMA(); } else if (op2 == 10) { grafoLa.ShowLA(); } else if (op2 == 11) { grafoLa.SequenciaGraus(); } else if (op2 == 12) { Console.Write("Digite o numero vértice: "); grafoLa.VerticesAdjacentes(int.Parse(Console.ReadLine())); } else if (op2 == 13) { Console.Write("Digite o numero vértice: "); if (grafoLa.Isolado(int.Parse(Console.ReadLine()))) { Console.Write("O vertice é isolado "); } else { Console.Write("O vertice não é isolado"); } } else if (op2 == 14) { Console.Write("Digite o numero vértice: "); if (grafoLa.Impar(int.Parse(Console.ReadLine()))) { Console.Write("O vertice é impar "); } else { Console.Write("O vertice não é impar"); } } else if (op2 == 15) { Console.Write("Digite o numero vértice: "); if (grafoLa.Par(int.Parse(Console.ReadLine()))) { Console.Write("O vertice é par "); } else { Console.Write("O vertice não é par"); } } else if (op2 == 16) { Console.Write("Digite o numero do primeiro vértice"); var primeiro = int.Parse(Console.ReadLine()); Console.Write("Digite o numero do segundo vértice"); var segundo = int.Parse(Console.ReadLine()); if (grafoLa.Adjacentes(primeiro, segundo)) { Console.WriteLine("São adjacentes"); } else { Console.WriteLine("Não são adjacentes"); } } } } while (op != 0); }