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);
            }
Exemplo n.º 2
0
            public static void GrafoMAs()
            {
                int x, v1, v2, v;

                Console.WriteLine("\nDigite a quantidade de vertice");
                v = int.Parse(Console.ReadLine());

                //cria o grafo atraves de uma matriz
                //onde a quantidade de vertice acima pedido
                //determina o tamanho da martriz
                GrafoMA grafo = new GrafoMA(v);

                grafo.showMA();

                Console.ReadKey(true);
                Console.Clear();
                do
                {
                    //menu de opcoes
                    Console.WriteLine("\n-------- GRAFOS ----------");
                    Console.WriteLine("1 - Ordem");
                    Console.WriteLine("2 - Inserir Aresta");
                    Console.WriteLine("3 - Remover aresta");
                    Console.WriteLine("4 - Grau do grafo");
                    Console.WriteLine("5 - Grafo eh completo ?");
                    Console.WriteLine("6 - Imprimir grafo");
                    Console.WriteLine("7 - Grafo eh Regular ?");
                    Console.WriteLine("8 - Show MA");
                    Console.WriteLine("9 - Show LA");
                    Console.WriteLine("10 - Sequncia Grau");
                    Console.WriteLine("11 - Lista de adjacencia");
                    Console.WriteLine("12 - vertice isolado");
                    Console.WriteLine("13 - Vertice eh Impar ?");
                    Console.WriteLine("14 - Vertice eh Par ?");
                    Console.WriteLine("15 - Adjacentes");
                    Console.WriteLine("16 - Classe GrafosLA");
                    Console.WriteLine("0 - SAIR ");

                    Console.WriteLine("==> ");
                    x = int.Parse(Console.ReadLine());

                    switch (x)
                    {
                    case 0:
                        Environment.Exit(x);
                        break;

                    case 1:

                        int a;
                        a = grafo.Ordem();
                        Console.Clear();
                        Console.WriteLine("\nOrdem eh: " + a);

                        break;

                    case 2:

                        Console.Write("Digite os dois vertices para ligação: ");
                        v1 = int.Parse(Console.ReadLine());
                        v2 = int.Parse(Console.ReadLine());
                        grafo.InserirAresta(v1, v2);
                        Console.Clear();

                        break;

                    case 3:

                        Console.Write("Digite os dois vertices: ");
                        v1 = int.Parse(Console.ReadLine());
                        v2 = int.Parse(Console.ReadLine());
                        grafo.RemoverAresta(v1, v2);
                        Console.Clear();

                        break;

                    case 4:

                        int c;
                        Console.Write("Digite o vertices: ");
                        v = int.Parse(Console.ReadLine());
                        c = grafo.Grau(v);
                        Console.Clear();
                        Console.WriteLine("\nO grau eh: " + c);

                        break;

                    case 5:

                        Console.Clear();
                        if (grafo.Completo())
                        {
                            Console.WriteLine("\n Grafo eh Completo");
                        }
                        else
                        {
                            Console.WriteLine("\n Grafo nao eh Completo");
                        }

                        break;

                    case 6:
                        Console.Clear();
                        grafo.showMA();
                        break;

                    case 7:
                        Console.Clear();
                        if (grafo.Regular())
                        {
                            Console.WriteLine("\n Grafo eh Regular");
                        }
                        else
                        {
                            Console.WriteLine("\n Grafo nao eh Regular");
                        }

                        break;

                    case 8:

                        Console.Clear();
                        grafo.showMA();

                        break;

                    case 9:

                        Console.Clear();
                        grafo.ShowLA();

                        break;

                    case 10:

                        Console.Clear();
                        grafo.SequenciaGraus();
                        break;

                    case 11:

                        Console.Clear();
                        Console.WriteLine("\nDigite o vertice a saber os adjacentes");
                        v = int.Parse(Console.ReadLine());
                        grafo.VerticesAdjacentes(v);

                        break;

                    case 12:

                        Console.Clear();
                        Console.WriteLine("\nDigite o vertice a saber se e isolado");
                        v = int.Parse(Console.ReadLine());

                        if (grafo.Isolado(v))
                        {
                            Console.WriteLine("O vertice eh isolado");
                        }
                        else
                        {
                            Console.WriteLine("O vertice nao eh isolado");
                        }

                        break;

                    case 13:

                        Console.Clear();
                        Console.WriteLine("\nDigite o vertice a saber se eh impar");
                        v = int.Parse(Console.ReadLine());
                        if (grafo.Impar(v) == true)
                        {
                            Console.WriteLine("Vertice eh Impar");
                        }
                        else
                        {
                            Console.WriteLine("Vertice nao eh impar");
                        }
                        break;

                    case 14:

                        Console.Clear();
                        Console.WriteLine("\nDigite o vertice a saber se eh par");
                        v = int.Parse(Console.ReadLine());
                        if (grafo.Par(v))
                        {
                            Console.WriteLine("Vertice eh Par");
                        }
                        else
                        {
                            Console.WriteLine("Vertice nao eh Par");
                        }

                        break;

                    case 15:

                        Console.Clear();

                        Console.Write("Digite os dois vertices p/ verificar adjacentes: ");
                        v1 = int.Parse(Console.ReadLine());
                        v2 = int.Parse(Console.ReadLine());

                        if (grafo.Adjacentes(v1, v2))
                        {
                            Console.WriteLine("sao Adjacentes");
                        }
                        else
                        {
                            Console.WriteLine("Nao sao Adjacentes");
                        }

                        break;

                    case 16:

                        Console.Clear();
                        GrafoLA.GrafoLAProgram();



                        break;
                    }
                } while (x != 99);


                Console.ReadKey(true);
            }
Exemplo n.º 3
0
        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);
        }