Ir para conteúdo

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 ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
    • Por Stephhany909
      While trying to persist an object with an attribute of type Point, defined as follows:
       
      @Entity @Table(name = "event") public class Event { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private long id; @Column(columnDefinition = "POINT") private Point coordinate; } I'm getting the error Data truncation: Cannot get geometry object from data you send to the GEOMETRY field.
      The corresponding database table is defined as follows:
       
      create table event ( id bigint not null auto_increment, coordinate POINT, primary key (id) ) engine= InnoDB; What am I missing?
       
×

Informação importante

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