[quote=wanderson.si]bom comerçei a entender,so q me confundi novamente no metodo inserir
rmalati daria para vc explicar melhor esse trecho:
Neste momento, a referência ult já não “aponta” mais para o último Nó da Lista(item), mas para o penúltimo. O último passo é fazer ult referenciar o novo ultimo Nó (item) da sua Lista.
???
utl.prox = item;
utl = item;
na linha 1 esta dizendo que o proximo no da liste sera item, e na 2 ele atualizar o utl no para item isso??? agora nao consigo enxergar onde ele refenrencia utl.prox como null?
frid,
nao posso usar arraylist ou outra api,estou estudando para prova da faculdade,vai cair os tipos abstratos de dados pilha, fila e lista e to garrado legal em lista…vlw galera ai pela ajuda
[/quote]
Wanderson, acho que entendi a sua dúvida.
utl.prox = item;
A linha anterior, faz o último NÓ apontar para o novo Último NÓ (item), ok?
utl = item;
Na linha anterior, o atributo da classe Lista (utl) que sempre referenciará o último elemento da Lista, deve agora referênciar o novo último NÓ que acabamos de inserir (item). item é agora nosso último NÓ da Lista, ok?
A classe NÓ, tem dois atributos (int chave, No prox), certo?
Quando você cria um novo objeto NÓ, os atributos(int chave, No prox) são inicializados com seus respectivos valores default. Esses valores são atribuídos implicitamente, quando você cria um novo objeto NÓ.
O compilador faz implicitamente assim:
chave = 0; //valor default para inteiros
prox = null; //valor default para referências a objetos (prox é do tipo No)
Então, sempre que inserir um novo NÓ na sua lista, a referência desse novo NÓ(item) ao próximo elemento é sempre null, até o você inserir um novo NÓ, na Lista!!!
utl.prox = null;
Sempre o último NÓ deverá referenciar null.
Quando você percorrer o método imprime(), chegará no último NÓ inserido e verificará se seu atributo prox referencia um valor nulo, isso indica que chegamos ao fim da Lista!!!
while(aux != null){ //É checado se estamos no último NÓ da Lista, senão imprimimos a chave!
System.out.println(aux.chave);
aux = aux.prox; // se aux.prox é null, indica que chegamos ao final da Lista
}
Ajudou a clarear ou ainda tá nebuloso? :?:
Abraço