Magna Concursos
2660028 Ano: 2007
Disciplina: TI - Desenvolvimento de Sistemas
Banca: CESPE / CEBRASPE
Orgão: Petrobrás

class Elemento {
public int valor, chave;
public Elemento anterior, posterior;
public Elemento(int valor, int chave){
this.valor = valor;
this.chave = chave;
}
}
class ListaDuplamenteEncadeada {
Elemento ptlista;
public ListaDuplamenteEncadeada() {
ptlista = new Elemento(0,0);
ptlista.anterior = ptlista;
ptlista.posterior = ptlista;
}
public void inserir(int valor, int chave) {
Elemento pont, pt;
pont = buscar(chave);
if (pont == ptlista || pont.chave != chave){
pt = new Elemento(valor, chave);
pt.anterior = pont.anterior;
pt.posterior = pont;
pont.anterior.posterior = pt;
pont.anterior = pt;
}
}
public void remover(int chave) {
Elemento pont;
pont = buscar(chave);
if (pont != ptlista && pont.chave == chave){
pont.anterior.posterior = pont.anterior;
pont.posterior.anterior = pont.posterior;
}
}
public Elemento buscar(int chave) {
Elemento ultimo, pont;
ultimo = ptlista.anterior;
if (chave <= ultimo.chave){
pont = ptlista.posterior;
while(pont.chave < chave)
pont = pont.posterior;
return pont;
}
return ptlista;

}

Considerando o Código Java acima, julgue o próximo item.

Considere que ListaDuplamenteEncadeada tenha por objetivo implementar uma lista duplamente encadeada. Nesse caso, os métodos inserir e remover estão corretamente implementados pois possibilitam inserir e remover elementos em listas do tipo informado.

 

Provas

Questão presente nas seguintes provas

Analista de Sistemas - Engenharia de Software

150 Questões