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.
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.