Exemplo n.º 1
0
            //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);
            }