Hola como estan?
Bueno, tengo este programita sobre listas circulares simples que apenas empiezo ver sin ninguna explicacion sobre este tipo de listas.
El compilador me da error en 2 lineas de codigo, cuando lo que deseo es que un nodo que esta apuntando , cambie y apunte a el que esta mas adelante, asi eliminando el que le sigue.
Si no estoy mal el algoritmo se encuentra bien, pero no tengo idea de lo que esta ocurriendo, supongo que debe ser un simple error pero, realmente yo no se cual podria ser ya que estoy como que medio embolatado con este sencillo tema.
Gracias.
Son 2 clases: La del error (a continuacion), y la que crea los nodos (abajo de esta).
import javax.swing.*;
public class listacircularsimple {
private node ptr=null;
public void InsertarInicio(int y)
{
node p;
p=new node(y);
p.setNext(ptr);
ptr=p;
}
public void InsertarFinal(int y)
{
node p;
node q;
p=new node(y);
if(ptr==null)
{
p.setNext(ptr);
ptr=p;
}
else
{
q=ptr;
while((q.getNext())!= (ptr))
{
q=q.getNext();
}
q.setNext(p);
p.setNext(ptr);
}
}
public void RecorrerListacircular(){
node p;
String s="";
p=ptr;
while(p!=ptr){
s=s+p.getInfo()+ " ";
p=p.getNext();
}
JOptionPane.showMessageDialog(null,s);
}
public void EliminarNodoConInfoZ(int z){
node p;
node q;
p=ptr;
if(ptr!=ptr){
while((p.getInfo())!=z){
q=p;
p=p.getNext();
}
q.getNext()=p.getNext();
}
else{
JOptionPane.showMessageDialog(null,"Lista vacia.");
}
}
public void EliminarUltimoNodo(){
node p;
node q;
p=ptr;
if(ptr!=ptr){
while((p.getNext())!=ptr){
q=p;
p=p.getNext();
}
q.getNext()=ptr;
}
else{
JOptionPane.showMessageDialog(null,"Lista vacia.");
}
}
}
===================================================
public class node {
private int info=0;
private node next=null;
public node (int x)
{
info = x;
}
public void setInfo(int y)
{
info=y;
}
public int getInfo()
{
return info;
}
public void setNext(node y)
{
next= y;
}
public node getNext()
{
return next;
}
}