Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maou2707

Erro no Método de Inserir, Algoritmo de java para manipular Grafos

Recommended Posts

Ola pessoa do forum, estou com um grande problema no meu programa de java, preciso criar uma maneira de armazenar Vertices e Arestas, irei explicar certinho o que acontece, para ver se voces podem me ajudar a encontrar meu problema.

Primeiro criamos um vértice na classe menu (uma classe de testes)

99       v = grafo.addVertice("vertice s0", 0);   //vertice é criado com o nome vertice s0 e codigo 0 (id)
100      grafo.setVertice_na_ListaVertice(v); //envia o vértice para uma lista duplamente encadeada

La na classe GrafoNo onde deveria ficar as listas duplamente encadas tem está função para adicionar um vertice na lista.

31 public void setVertice_na_ListaVertice(Vertice vertice)
32    { 
33        //System.out.println(vertice.getNomeVertice());
34        this.lista_no_vertice = lista_no_vertice.insereVerticeNo(lista_no_vertice, vertice);
35        
36    }

Ele envia para a função de inseirir um vertice no Nó enviando por parâmetro a lista com todos os nós e o Vértice da classe de testes, agora la na no insereVerticeNo na classe Vertice, temos.

27 //Insere um no de Vertice no final da lista de Vertices
28    public NoVertice insereVerticeNo(NoVertice lista_de_vertices, Vertice vertice) {
29        NoVertice novo = criarNoVertice(vertice);
30
31        if (lista_de_vertices == null) {
32            lista_de_vertices = novo;
33        } else {
34            NoVertice ultimo = buscaUltimoNo(lista_de_vertices);
35            novo.noAntVertice = ultimo;
36            ultimo.noProxVertice = novo;
37        }
38
39        return lista_de_vertices;
40    }

é uma operação comum de inserção de elemento no final de uma lista encadeada, até então não vi nenhum erro, porem quando mando imprimir os Vértices da lista duplamente encadeada, o primeiro elemento é null, desta forma dando erro no java, com ajuda do professor, nos resolvemos colocando um if na hora de imprimir.

65    public void imprimirVertices()
66    {
67        NoVertice lista = lista_no_vertice;
68       
69        
70        if (lista == null)
71        {
72            System.out.println("não a vertices");
73        }else
74        {
75            while(lista != null)
76            {
77                
78                System.out.println(lista.getNomeVertice());
79                lista = lista.getNoProxVertice();
80            }
81        }
82    }

O programa entra no while, ou seja a lista é diferente de nul, porem quando é chamado a:

lista.getNomeVertice()

o primeiro valor é nulo dando erro no java, o professor para mostrar o erro fez esta função quando nula voltar o erro como mostrado abaixo.

90    public String getNomeVertice() {
91        return vertice == null ? "erro aqui" : vertice.getNomeVertice();
92    }

então é isso, o nosso problema é que o primeiro valor é sempre nulo, desta forma quando mandamos mostrar no terminal os vertices temos esta resposta.

erro aqui
vertice s0
Vertice s1
Vertice s2
Vertice s3
Vertice s4

Se alguem puder ajudar ficaria grato, se quiserem dar uma olhada mais afundo no codigo, deixarei o link do github

https://github.com/OrdemDEEV/ProjetoGrafos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu resolvi da seguinte forma, sempre que ia percorrer a lista duplamente encadeada, fazia ela receber o próximo nó e é como se não estivesse nada de errada, eu não sei se é gambiarra, mas funcionou, se alguém conhecer algum outro método, só mandar email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Por favor, alguém pode me dar uma explicação referente o Template AdminLTE + Java Netbeans.

      Após importar para o Sistema Web. o componente para a pasta:
      WEB PAGES
      |___> bower_components - fica apresentando ERRO em algumas subpastas.

      Como consigo corrigir esses erros ?

      At.te,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida em Sistema WEB em Java.

      O Código abaixo está na Página index.jsp
      <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> </html>
      O problema são os caracteres especiais que não consigo corrigir.

      Como consigo converter os Caracteres para o Padrão Português(BR) ?

      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.