SoloCodigo
		Programación General => Java => Mensaje iniciado por: digichap28 en Sábado  7 de Junio de 2008, 17:33
		
			
			- 
				Hola, que tal?
 Bueno , tengo un problema con este ejercicio que me pidieron, este codigo corre si quiero eliminar todos los datos en una lista circular simple o sencilla , con excepcion de estos casos:
 
 *Cuando el nodo se encuentra en la primera posicion y se desea eliminar ese, dejando apuntado el siguiente nodo, por ptr.
 
 *Cuando solo existe un nodo y se desea eliminar ese, dejando la lista en null.
 
 Por favor necesito un poco de ayuda con eso, si son tan amables.
 Gracias.
 
  public void EliminarNodoConInfoZ(int z){
 
 node p;
 node q;
 
 if(ptr==null){
 JOptionPane.showMessageDialog(null,"Lista vacia.");
 }
 else{
 p=ptr;
 q=p;
 
 while(z!=(p.getInfo())){
 q=p;
 p=p.getNext();
 
 }
 
 q.setNext(p.getNext());
 
 }
 }
 
- 
				Amigo ya hace tiempo otro compañero tenia el mismo problema que vos, por eso aca te dejo este tutorial, todas las lineas estan detalladas
 
 
 saludos
- 
				Se supone que el codigo o la parte logica esta bien!!
 Pero ahora lo que hace es que si intento eliminar el primer nodo , lo pone en la ultima posicion de la lista circular!!
 
 Ayuda!!
 
 public void EliminarNodoConInfoZ(int z){
 
 node p;
 node q;
 boolean primernodo;
 
 if(ptr==null){
 JOptionPane.showMessageDialog(null,"Lista vacia.");
 }
 else{
 p=ptr;
 q=p;
 primernodo=true;
 while(z!=(p.getInfo())){
 q=p;
 p=p.getNext();
 primernodo=false;
 }
 if(primernodo){
 if(p.getNext=ptr){
 ptr=null;
 }
 else{
 ptr=p.getNext();
 }
 
 }
 else{
 q.setNext(p.getNext());
 }
 
 
 }
 }