Pessoal, continuando... disponibilizo os meus métodos tamanho, imprimir, remover e inserir numa lista duplamente encadeada.
public int tamanho(){ //esse metodo vai retornar a qtd de elementos da lista
Usuario temp = primeiro;
int totalElementos = 0;
//vai percorrer e incrementar a variavel totalElementos
while(temp != null){
temp = temp.getProx();
totalElementos++;
}
return totalElementos;
} //fim do metodo total
public void imprimir() { //esse metodo vai imprimir os elementos da lista
//variavel
Usuario temp = primeiro; //crio a variavel
//percorro a lista
while (temp != null) { //Enqto a temp for != null
temp.imprimir(); //imprima
temp = temp.getProx(); //temp receba o prox da fila
}//fim do while
} //fim do metodo
public void remove(int matricula) { //este metodo vai remover um elemento numa lista duplamente encadeada
if (primeiro != null) { //se a lista não estiver vazia
//se for remover o primeiro
if (primeiro.getMatricula() == matricula) {
this.primeiro = this.primeiro.getProx();
} else {
Usuario temp = primeiro.getProx();
temp.setAnt(primeiro);
//percorre a lista
while (temp != null && temp.getMatricula() != matricula) {
temp = temp.getProx();
}
//se temp for diferente de null é pq encontrou mat =
if (temp != null) {
temp.getAnt().setProx(temp.getProx());
temp.getProx().setAnt(temp.getAnt());
} //fim do if
} //fim do else
} //fim do if
} //fim do metodo remova
public void inserir(int pos, Usuario novo){
Usuario temp = primeiro;
int posicao = 0;
int tamanho = tamanho(); // metodo que retorna o tamanho da lista
if(temp == null){
novo.setAnt(null);
novo.setProx(null);
primeiro = novo;
} else if (pos > -1 && pos <= tamanho) {
while (temp.getProx() != null && pos != posicao) { //temp.getProx() != null pq temp nao pode ser null
posicao++; //incrementa a posição
temp = temp.getProx();
} //fim do while
if (pos == 0) { //inserir na primeira posição
novo.setProx(temp);
novo.setAnt(null);
temp.setAnt(novo);
primeiro = novo;
} else if (pos < tamanho) { //inseri em qualquer posição
novo.setProx(temp);
novo.setAnt(temp.getAnt());
temp.getAnt().setProx(novo);
temp.setAnt(novo);
} else { //inseri na ultima posição
novo.setAnt(temp);
novo.setProx(null);
temp.setProx(novo);
}
} else {
System.out.println("Posição invalida!");
}
} //final do metodo inserir
Esta é uma página pessoal, criada inicialmente para armazenar os códigos-fontes dos programas Java desenvolvidos durante o Curso de BSI, mas agora, armazenará soluções de exercícios dos meus estudos extra acadêmicos. A ideia é permitir que estudantes iniciantes na programação Java continuem encontrando neste espaço um meio de pesquisa e estudo, portanto, serão alternativas de soluções para exercícios básicos. Buscarei disponibilizar os códigos de forma didáticos e sempre que possível comentados.
AGRADECIMENTO...
Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.
Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...
Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.
As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.
Desde já agradeço a todos pelas visitas e desejo bons estudos.
Thiago Campos
(srthiago@hotmail.com)
Assinar:
Postar comentários (Atom)
massa demais mano valeu
ResponderExcluir