Lista Dupla Encadeada - Java

3 respostas
G

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]

3 Respostas

Gustavokt

GJAVA2010:

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]

Preste atenção no erro que você vai entender o problema…

G

Desculpe, sou surdo, vc pode mostrar como exemplo fazer java.

ViniGodoy

O seu método insetAfter exige um objeto do tipo Position como primeiro parâmetro.

E um valor inteiro não é um objeto do tipo position.

Criado 14 de setembro de 2010
Ultima resposta 17 de set. de 2010
Respostas 3
Participantes 3