UAM - N2 - Estrutura de Dados
Por: ferdsrocha • 13/6/2015 • Exam • 1.841 Palavras (8 Páginas) • 285 Visualizações
Pergunta 1
É necessária uma avaliação
Não Avaliada
Considere o seguinte código de uma lista duplamente encadeada.
Descrição da classe Node:
public class Node {
public int data;
public Node next;
public Node prev;
public Node( int d ) {
data = d;
next = prev = null;
}
public int getData(){
return data;
}
}
Descrição da classe Lista Duplamente Encadeada:
public class ListaDupla {
public Node firstNode, lastNode;
public ListaDupla( ) {
firstNode = lastNode = null;
}
public boolean isEmpty(){
return (firstNode == null);
}
public void insertFirst(int data){
Node novoNode = new Node(data);
if (isEmpty())
firstNode = lastNode = novoNode;
else{
firstNode.prevNode = novoNode;
novoNode.nextNode = firstNode;
firstNode = novoNode;
}
}
public void insertLast(int data){
Node novoNode = new Node(data);
if (isEmpty())
firstNode = lastNode = novoNode;
else{
lastNode.nextNode = novoNode;
novoNode.prevNode = lastNode;
lastNode = novoNode;
}
}
public boolean insertAfter(int key, int data){
Node atual = firstNode;
if (atual == null)
return false;
while (atual.dado != key){
atual = atual.nextNode;
if (atual == null)
return false;
}
Node novoNode = new Node(data);
if (atual == lastNode) {
novoNode.prevNode = lastNode;
lastNode = novoNode;
}
else{
novoNode.nextNode = atual.nextNode;
atual.nextNode.prevNode = novoNode;
}
novoNode.prevNode = atual;
atual.nextNode = novoNode;
return true;
}
public void imprimeInvertido(){
? ? ?
}
}
Implemente um método que irá apresentar todos os elementos da lista na ordem invertida.
A assinatura do método deve ser: public void imprimeInvertido().
Para a lista de exemplo acima, a saída deve ser:>65 18 81 33 16 99 10
Resposta Selecionada:
public void imprimeInvertido(){
if ( isEmpty() ) {
System.out.println( "Lista vazia" );
}
else{
No current = lastNode;
while ( current != null ) {
System.out.print(current.getValor() - " " );
current = current.getPrev();
}
}
System.out.println( "\n" )
}
Resposta Correta:
Correta
public void imprimeInvertido(){
/*************************************************
* Descreva como o método seria implementando utilizando a linguagem Java para percorrer a lista de forma invertida
*************************************************/
}
...