Olá pessoas, gostaria de tirar uma dúvida. Estou colocando abaixo parte da questão pois não consigo achar a fonte do meu erro. Onde estou errando é que a primeira vez que eu tento inserir uma pessoa ele não coloca na lista, só a partir da segunda e a primeira posição fica null. Será que alguém poderia dar uam olhada pra mim.
Mais uma coisa, esse código ainda não está terminado, ainda falta muita coisa, então se essa for a causa do problema, me digam o que falta completar para eu fazer, mas NÃO coloquem o código se essa for a causa do problema.
public class ListaSimplesEncadeada {
private ItemListaEncadeada inicioLista = null;
/**
* Inclui a informação no inicio da lista
* @param informacao informação a ser incluída no início da lista
*/
[color="#FF0000"]
////////Aqui eu acho que está o erro ////////////////////////////////////////////////////[/color]
public void incluir(Pessoa informacao){
ItemListaEncadeada novoItem = new ItemListaEncadeada();
novoItem.setInformacao(informacao);
//comando equivalente a novoItem.proximo = lista;
novoItem.setProximo(inicioLista);
inicioLista = novoItem;
}
/**
* Inclui a informação na lista na posição informada
* @param posicao a posição a ser recuperada
* @param informacao informação a ser incluída na lista
*/
public void incluir (int posicao, Pessoa informacao){
ItemListaEncadeada auxiliar = new ItemListaEncadeada();
ItemListaEncadeada anterior = new ItemListaEncadeada();
ItemListaEncadeada novoItem = new ItemListaEncadeada();
anterior = null;
novoItem.setInformacao(informacao);
novoItem.setProximo(null);
auxiliar.setProximo(inicioLista);
int contador = 0;
if (posicao == 1){
incluir(informacao);
}else{
if (posicao > getTamanho()){
posicao = getTamanho()+1;
}
while (auxiliar != null){
if (contador == posicao){
novoItem.setProximo(auxiliar);
anterior.setProximo(novoItem);
break;
}else{
anterior = auxiliar;
anterior.setProximo(auxiliar);
auxiliar = auxiliar.getProximo();
contador++;
}
}
}
}
/**
* Recupera a informação da posição informada
* @param posicao a posição a ser recuperada
* @return a informação
*/
public Pessoa obter (int posicao){
return null;
}
/**
* recupera a primeira informação da lista
* @return a informação da lista
*/
public Pessoa getPrimeiro(){
if ( inicioLista != null )
return inicioLista.getInformacao();
else
return null;
}
/**
* Remove o elemento da lista baseado na posição
* @param posicao posição a ser excluída
*/
public void remover(int posicao){
ItemListaEncadeada auxiliar = new ItemListaEncadeada();
auxiliar.setProximo(inicioLista);
ItemListaEncadeada anterior = new ItemListaEncadeada();
anterior = null;
int contador = 0;
if (posicao == 1 ){
auxiliar = inicioLista;
inicioLista = auxiliar.getProximo();
}else{
while (auxiliar != null){
if (contador == posicao){
if (anterior == null){
inicioLista = auxiliar.getProximo();
}else{
anterior.setProximo(auxiliar.getProximo());
}
break;
}else{
anterior = auxiliar;
auxiliar = auxiliar.getProximo();
contador++;
}
}
}
}
/**
* Remove a informação da lista
* @param informacao
*/
public void remover(Pessoa informacao){
}
/**
* Remove todos os elementos da lista
*/
public void limpar(){
}
/**
* recupera a quantidade de elementos cadastrados na lista
* @return
*/
public int getTamanho(){
ItemListaEncadeada auxiliar = new ItemListaEncadeada();
auxiliar.setProximo(this.inicioLista);
int cont = 0;
while (auxiliar.getProximo() != null) {
cont++;
}
return cont;
}
/**
* Verifica se a lista possui a informação solicitada
* @param informacao dado a ser pesquisado
* @return verdadeiro se encontrar
*/
public boolean contem(Pessoa informacao){
return false;
}
/**
* Joga na saída principal todos os elementos cadastrados da lista
*/
public void listar(){
ItemListaEncadeada auxiliar = new ItemListaEncadeada();
auxiliar.setProximo(this.inicioLista);
Pessoa informacao = new Pessoa();
while (auxiliar.getProximo() != null) {
if (inicioLista.getProximo() == null) {
System.out.println("Não há Candidatos Nesta Lista");
break;
}else{
informacao = auxiliar.getInformacao();
if (informacao != null){
System.out.println(auxiliar.getInformacao());
System.out.println("NOME: "+informacao.getNome());
System.out.println("IDADE: "+informacao.getIdade());
System.out.println("SEXO: "+informacao.getSexo());
}
auxiliar = auxiliar.getProximo();
}
}
System.out.println("");
System.out.println("");
}
}
Pergunta
A. Kenneth
Olá pessoas, gostaria de tirar uma dúvida. Estou colocando abaixo parte da questão pois não consigo achar a fonte do meu erro. Onde estou errando é que a primeira vez que eu tento inserir uma pessoa ele não coloca na lista, só a partir da segunda e a primeira posição fica null. Será que alguém poderia dar uam olhada pra mim.
Mais uma coisa, esse código ainda não está terminado, ainda falta muita coisa, então se essa for a causa do problema, me digam o que falta completar para eu fazer, mas NÃO coloquem o código se essa for a causa do problema.
public class ListaSimplesEncadeada { private ItemListaEncadeada inicioLista = null; /** * Inclui a informação no inicio da lista * @param informacao informação a ser incluída no início da lista */ [color="#FF0000"] ////////Aqui eu acho que está o erro ////////////////////////////////////////////////////[/color] public void incluir(Pessoa informacao){ ItemListaEncadeada novoItem = new ItemListaEncadeada(); novoItem.setInformacao(informacao); //comando equivalente a novoItem.proximo = lista; novoItem.setProximo(inicioLista); inicioLista = novoItem; } /** * Inclui a informação na lista na posição informada * @param posicao a posição a ser recuperada * @param informacao informação a ser incluída na lista */ public void incluir (int posicao, Pessoa informacao){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); ItemListaEncadeada anterior = new ItemListaEncadeada(); ItemListaEncadeada novoItem = new ItemListaEncadeada(); anterior = null; novoItem.setInformacao(informacao); novoItem.setProximo(null); auxiliar.setProximo(inicioLista); int contador = 0; if (posicao == 1){ incluir(informacao); }else{ if (posicao > getTamanho()){ posicao = getTamanho()+1; } while (auxiliar != null){ if (contador == posicao){ novoItem.setProximo(auxiliar); anterior.setProximo(novoItem); break; }else{ anterior = auxiliar; anterior.setProximo(auxiliar); auxiliar = auxiliar.getProximo(); contador++; } } } } /** * Recupera a informação da posição informada * @param posicao a posição a ser recuperada * @return a informação */ public Pessoa obter (int posicao){ return null; } /** * recupera a primeira informação da lista * @return a informação da lista */ public Pessoa getPrimeiro(){ if ( inicioLista != null ) return inicioLista.getInformacao(); else return null; } /** * Remove o elemento da lista baseado na posição * @param posicao posição a ser excluída */ public void remover(int posicao){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(inicioLista); ItemListaEncadeada anterior = new ItemListaEncadeada(); anterior = null; int contador = 0; if (posicao == 1 ){ auxiliar = inicioLista; inicioLista = auxiliar.getProximo(); }else{ while (auxiliar != null){ if (contador == posicao){ if (anterior == null){ inicioLista = auxiliar.getProximo(); }else{ anterior.setProximo(auxiliar.getProximo()); } break; }else{ anterior = auxiliar; auxiliar = auxiliar.getProximo(); contador++; } } } } /** * Remove a informação da lista * @param informacao */ public void remover(Pessoa informacao){ } /** * Remove todos os elementos da lista */ public void limpar(){ } /** * recupera a quantidade de elementos cadastrados na lista * @return */ public int getTamanho(){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(this.inicioLista); int cont = 0; while (auxiliar.getProximo() != null) { cont++; } return cont; } /** * Verifica se a lista possui a informação solicitada * @param informacao dado a ser pesquisado * @return verdadeiro se encontrar */ public boolean contem(Pessoa informacao){ return false; } /** * Joga na saída principal todos os elementos cadastrados da lista */ public void listar(){ ItemListaEncadeada auxiliar = new ItemListaEncadeada(); auxiliar.setProximo(this.inicioLista); Pessoa informacao = new Pessoa(); while (auxiliar.getProximo() != null) { if (inicioLista.getProximo() == null) { System.out.println("Não há Candidatos Nesta Lista"); break; }else{ informacao = auxiliar.getInformacao(); if (informacao != null){ System.out.println(auxiliar.getInformacao()); System.out.println("NOME: "+informacao.getNome()); System.out.println("IDADE: "+informacao.getIdade()); System.out.println("SEXO: "+informacao.getSexo()); } auxiliar = auxiliar.getProximo(); } } System.out.println(""); System.out.println(""); } }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.