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