Ola pessoal,
A java, eu fiz a lista dupla encadeada, só principal são insertBefore e insertAfter tem erros, eu ja tentei, mas n consegui. Vc pode ajudar, como fazer Position, olha abaixo.
Interface
public interface Position {
public Object element() throws InvalidPosException;
}
Método - classe NodeList[color=black] [/color]
protected DNode checkPosition(Position p)throws InvalidPosException{
if (p == null || p == header || p == trailer) throw new InvalidPosException("Inválido");
try {
DNode temp = (DNode)p;
if ((temp.getPrev() == null) || (temp.getNext() == null))throw new InvalidPosException("Inválido");
return temp;
}
catch (ClassCastException e){
throw new InvalidPosException("Erro");
}
}
public Position insertBefore(Position p,Object elem) throws InvalidPosException{
DNode v = checkPosition(p);
numElemts++;
DNode newNode = new DNode(v.getPrev(),v,elem);
newNode.getPrev().setNext(newNode);
v.setPrev(newNode);
return newNode;
}
public Position insertAfter(Position p, Object elem) throws InvalidPosException{
numElemts++;
DNode v = checkPosition(p);
DNode newNode = new DNode(v,v.getNext(),elem);
newNode.getNext().setPrev(newNode);
v.setNext(newNode);
return newNode;
}
Principal
public class principal {
public static void main(String args[]){
NodeList teste = new NodeList();
teste.insertFirst(3);
teste.insertFirst(5);
teste.insertEnd(4);
teste.insertEnd(8);
teste.insertAfter(8,9);
teste.insertBefore(4,10);
// teste.imprimeED();
// teste.imprimeDE();
// teste.removeFirst();
// teste.removeEnd();
teste.imprimeED();
teste.imprimeDE();
}
}
ERRO
[color=red]insertAfter(Position,java.lang.Object) in NodeList cannot be applied to (int)
insertBefore(Position,java.lang.Object) in NodeList cannot be applied to (int)[/color]