Java - ¡¡¡¡¡Ayuda please!!!! Pregunta sobre lista enlazad

 
Vista:

¡¡¡¡¡Ayuda please!!!! Pregunta sobre lista enlazad

Publicado por Pucca (2 intervenciones) el 28/08/2005 03:13:06
Hola
Necesito ayuda, soy nueva en esto y tengo que crear una lista enlazada circular en donde el último nodo apunte al primero...no he tenido errores de compilación pero hay algo malo en mi función enque (que agrega un nuevo nodo a la lista) ya que pareciera q no está agregando nada. Si alguien me pudiese decir en q me equivoqué se lo agradecería muchísimo ¡esto es urgente!! U_U

class Nodo{
public Object valor;
public double tiempo;
public Nodo sgte;

public Nodo(Object x, double y, Nodo z){
valor=x; tiempo= y; sgte=z;
}
}

class Queue{

protected Nodo ultimo;

public Queue(){
reset();
}

public void reset(){
ultimo=null;
}


public void enque(Object x, double y)throws QueueFull{

try{
Nodo r, aux;
if(ultimo==null){ //la cola está vacía
r=new Nodo(x,y,ultimo);
r.sgte=r;
}
else{
aux=ultimo.sgte;
r= new Nodo(x,y,aux);
ultimo.sgte=r;
}

ultimo=r;

}catch(OutOfMemoryError e){ throw new QueueFull();}

}

}

class QueueFull extends Exception{}
class QueueEmpty extends Exception{}

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¡¡¡¡¡Ayuda please!!!! Pregunta sobre lista enla

Publicado por Wilfredo Vargas Almendras (314 intervenciones) el 28/08/2005 15:00:03
Hola... modifique algunas cosas de tu codigo... y llegue a este resultado
class Nodo{
public Object valor;
public double tiempo;
public Nodo sgte;

public Nodo(Object x, double y, Nodo z){
valor=x; tiempo= y; sgte=z;
}

public Object getValor(){
return valor;
}

}

class Queue{

protected Nodo primero;
protected Nodo ultimo;

public Queue(){
reset();
}

public void reset(){
primero=null;
ultimo=null;
}


public void enque(Object x, double y){

try{
Nodo r, aux;
if(primero==null){ //la cola está vacía

r=new Nodo(x,y,null);

primero = r;

ultimo = primero;
}
else{

aux=ultimo.sgte;

r= new Nodo(x,y,aux);
ultimo.sgte=r;
ultimo=r;

}


}catch(OutOfMemoryError e){ }

}

public void mostrarCola(){

Nodo actual = primero;

while( actual!=null ){
System.out.println ("DATO: "+actual.getValor());
actual = actual.sgte;
}

}

}

public class PruebaColaNodo{

public static void main( String args[] ){

Queue q = new Queue();

Integer d = new Integer(1);

q.enque( d,1 );
d = new Integer(2);
q.enque( d,2 );
d = new Integer(3);
q.enque( d,3 );
d = new Integer(4);
q.enque( d,4 );
d = new Integer(5);
q.enque( d,5 );

d = new Integer(6);
q.enque( d,6);

q.mostrarCola();
}
}

El error que cometias era que utilizabas al nodo r como al de la cola.. ademas de algunos otros detalles que ya debiste notar ...
Espero te sea de ayuda... SALUDOS Wilfredo Vargas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar