Bom dia, estou com um problema que creio que seja simples:
Possuo uma lista, e preciso criar um método que altere de posição o primeiro elemento com o segundo, mas não estou conseguindo entender a lógica para fazer isso.
Preciso criar o método na classe descrita abaixo, o método precisa ser public boolean fazerTroca()
Se alguém puder me dar uma luz…agradeço.
public class List {
private Node firstNode;
private Node lastNode;
private String name;
public List() {
this( "list" );
}
public List( String listName ) {
name = listName;
firstNode = lastNode = null;
}
public Node getFirst(){
return firstNode;
}
public Node getLast(){
return lastNode;
}
public void insertAtFront( Object insertItem ) {
if ( isEmpty() )
firstNode = lastNode = new Node( insertItem );
else
firstNode = new Node( insertItem, firstNode );
}
public void insertAtBack( Object insertItem ) {
if ( isEmpty() )
firstNode = lastNode = new Node( insertItem );
else {
lastNode.setNext (new Node( insertItem ));
lastNode = lastNode.getNext();
}
}
public Object removeFromFront() throws EmptyListException {
if ( isEmpty() )
throw new EmptyListException( name );
Object removedItem = firstNode.getData();
if ( firstNode == lastNode )
firstNode = lastNode = null;
else
firstNode = firstNode.getNext();
return removedItem;
}
public Object removeFromBack() throws EmptyListException {
if ( isEmpty() )
Object removedItem = lastNode.getData();
if ( firstNode == lastNode )
firstNode = lastNode = null;
else {
Node current = firstNode;
while ( current.getNext() != lastNode )
current = current.getNext();
lastNode = current;
current.setNext(null);
}
return removedItem;
}
public boolean isEmpty() {
return firstNode == null; // return true if List is empty
}
public void print() {
if ( isEmpty() ) {
System.out.println( "Empty " + name );
return;
}
System.out.print( "The " + name + " is: " );
Node current = firstNode;
while ( current != null ) {
System.out.print( current.getData().toString() + " " );
current = current.getNext();
}
System.out.println( "\n" );
}
}

