[AJUDA] lista encadeada simples em java - Métodos de Existir e Remover [URGENTE]
05/06/2017
0
Estou tentando fazer um método da lista encadeada simples, mas já estou a 2 dias tentando resolver esses métodos e não dou um jeito..
todos os outros já estão funcionando, mas o de existir quando só se cria um node1, e tenta testar ele estava dando como true o node que eu não tinha inserido ainda, e o remover só consigo remover o primeiro node da lista encadeada, segue TODOS os códigos, se alguém poder me ajudar, seria de grande favor
class ListaDinamica
class Node
todos os outros já estão funcionando, mas o de existir quando só se cria um node1, e tenta testar ele estava dando como true o node que eu não tinha inserido ainda, e o remover só consigo remover o primeiro node da lista encadeada, segue TODOS os códigos, se alguém poder me ajudar, seria de grande favor
class ListaDinamica
package br.edu.unifil.comp2022.listadinamica; public class ListaDinamica{ private Node inicio, ultimo; private int tamanho = 0; public ListaDinamica(){ this.inicio = null; this.ultimo = null; } public void inserir(Node node){ if(inicio == null){ inicio = ultimo = node; }else{ Node aux = inicio; while(aux.getProximo() != null){ aux = aux.getProximo(); } aux.setProximo(node); } tamanho++; } public void remover(Node node){ Node procurar = node; if(inicio == null){ //Lista Vazia System.out.println("Lista vazia"); } if(existe(node) == true){ if(inicio != null && inicio != inicio.getProximo()){ // remove o primeiro elemento inicio = inicio.getProximo(); } else if(inicio.getProximo() != null){ while(inicio.getProximo() != null){ procurar = procurar.getProximo(); if(node.getProximo() == null){ procurar.setProximo(null); }else{ procurar = node.getProximo(); node.setProximo(null); } } } tamanho--; } } public boolean existe(Node node){ Node contar; Node aux; aux = inicio; if(node != null && tamanho == 0){ return true; } else{ while(inicio != null || aux.getProximo() != null){ return true; } } return false; } public int tamanho(){ return tamanho; } @Override public String toString(){ String ret; if(inicio == null){ ret = "[]"; }else{ ret = "["; Node aux = inicio; while(aux.getProximo() != null){ ret = ret + aux + ", "; aux = aux.getProximo(); } } ret = ret + "]"; return ret; } }
class Node
package br.edu.unifil.comp2022.listadinamica; import java.lang.Math; /** * Write a description of class Node here. * * @author (your name) * @version (a version number or a date) */ public class Node{ // instance variables - replace the example below with your own private int x; private Node proximo, anterior; /** * Constructor for objects of class Node */ public Node(){ x = (int) (Math.random()*100); } public Node(int _x){ this.x = _x; } public int getX(){ return this.x; } public Node getAnterior(){ return this.anterior; } public Node getProximo(){ return this.proximo; } public void setX(int _x){ this.x = _x; } public void setProximo(Node _proximo){ this.proximo = _proximo; } public void setAnterior(Node _anterior){ this.anterior = _anterior; } @Override public String toString(){ return Integer.toString(this.x); } }
Rafael Filho
Curtir tópico
+ 0
Responder
Posts
14/07/2017
Rodrigo Zandonadi
Mano, acho que você usou a tag errada... node.js não tem a ver com seu problema.
Responder
Clique aqui para fazer login e interagir na Comunidade :)