Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: Vivynz on 10-04-2009, 15:04:26



Title: Lista Linakta circolare
Post by: Vivynz on 10-04-2009, 15:04:26
L'ho implementata così..ma ci sono alcune cose che non credo siano proprio ben fatte....qualche suggerimento?
Code:
public class LinkedListCircolare
{
private Nodo head;
public LinkedListCircolare()
{
head=null;
}
public boolean isEmpty()
{
return (head==null);
}
public Nodo getHead()
{
return head;
}
public void insert(Comparable c)
{
if(isEmpty())
{
head=new Nodo(c);
head.setNext(head);
}
else
{
if(((Comparable)head.getInfo()).compareTo(c)>0)
{
Nodo aux=head;
for(;aux.getNext()!=head;aux=aux.getNext());
head=new Nodo(c,head);
aux.setNext(head);
}
else
{
Nodo aux=head;
for(;aux.getNext()!=head&&((Comparable)aux.getNext().getInfo()).compareTo(c)<0;aux=aux.getNext());
aux.setNext(new Nodo (c,aux.getNext()));
}
}
}
public Comparable delete(Comparable c)
{
if(isEmpty())
throw new EmptyListException();
else
{
if(head.getInfo().compareTo(c)==0)
{
Nodo aux=head;
Nodo temp=head;
for(;aux.getNext()!=head;aux=aux.getNext());
head=head.getNext();
aux.setNext(head);
return temp.getInfo();
}
else
{
Nodo aux=head;
Nodo prev=null;
for(;aux.getNext()!=head&&((Comparable)aux.getInfo()).compareTo(c)!=0;prev=aux,aux=aux.getNext());
if(prev!=null)
{
if(((Comparable)aux.getInfo()).compareTo(c)==0)
{
prev.setNext(aux.getNext());
return aux.getInfo();
}
else
return null;
}
else
{

}
}
}
return null;
}
public Nodo search(Comparable c)
{
if(isEmpty())
throw new EmptyListException();
else
{
Nodo aux=head;
for(;aux.getNext()!=head&&((Comparable)aux.getInfo()).compareTo(c)!=0;aux=aux.getNext());
if(((Comparable)aux.getInfo()).compareTo(c)==0)
return aux;
return null;
}
}
public void stampa()
{
System.out.println(head.getInfo());
Nodo aux=head.getNext();
for(;aux!=head;aux=aux.getNext())
System.out.println(aux.getInfo());
System.out.println();
}
}


Title: Re:Lista Linakta circolare
Post by: TheSpecialOne on 10-04-2009, 15:20:52
L'ho implementata così..ma ci sono alcune cose che non credo siano proprio ben fatte....qualche suggerimento?
Code:
public class LinkedListCircolare
{
private Nodo head;
public LinkedListCircolare()
{
head=null;
}
public boolean isEmpty()
{
return (head==null);
}
public Nodo getHead()
{
return head;
}
public void insert(Comparable c)
{
if(isEmpty())
{
head=new Nodo(c);
head.setNext(head);
}
else
{
if(((Comparable)head.getInfo()).compareTo(c)>0)
{
Nodo aux=head;
for(;aux.getNext()!=head;aux=aux.getNext());
head=new Nodo(c,head);
aux.setNext(head);
}
else
{
Nodo aux=head;
for(;aux.getNext()!=head&&((Comparable)aux.getNext().getInfo()).compareTo(c)<0;aux=aux.getNext());
aux.setNext(new Nodo (c,aux.getNext()));
}
}
}
public Comparable delete(Comparable c)
{
if(isEmpty())
throw new EmptyListException();
else
{
if(head.getInfo().compareTo(c)==0)
{
Nodo aux=head;
Nodo temp=head;
for(;aux.getNext()!=head;aux=aux.getNext());
head=head.getNext();
aux.setNext(head);
return temp.getInfo();
}
else
{
Nodo aux=head;
Nodo prev=null;
for(;aux.getNext()!=head&&((Comparable)aux.getInfo()).compareTo(c)!=0;prev=aux,aux=aux.getNext());
if(prev!=null)
{
if(((Comparable)aux.getInfo()).compareTo(c)==0)
{
prev.setNext(aux.getNext());
return aux.getInfo();
}
else
return null;
}
else
{

}
}
}
return null;
}
public Nodo search(Comparable c)
{
if(isEmpty())
throw new EmptyListException();
else
{
Nodo aux=head;
for(;aux.getNext()!=head&&((Comparable)aux.getInfo()).compareTo(c)!=0;aux=aux.getNext());
if(((Comparable)aux.getInfo()).compareTo(c)==0)
return aux;
return null;
}
}
public void stampa()
{
System.out.println(head.getInfo());
Nodo aux=head.getNext();
for(;aux!=head;aux=aux.getNext())
System.out.println(aux.getInfo());
System.out.println();
}
}

sembra buona...


Title: Re:Lista Linakta circolare
Post by: rox on 19-04-2009, 17:31:23
Ragazzi, ho un serio problema con le liste circolari semplici.
Se qualcuno di voi ha scritto una soluzione funzionante e completa, potrebbe per favore postarla ?
Vi ringrazio. ciao


Title: Re:Lista Linakta circolare
Post by: Gam on 20-04-2009, 11:02:02
 .quoto



Title: Re:Lista Linakta circolare
Post by: Giovi89 on 20-04-2009, 13:47:16
Ragazzi, ho un serio problema con le liste circolari semplici.
Se qualcuno di voi ha scritto una soluzione funzionante e completa, potrebbe per favore postarla ?
Vi ringrazio. ciao


Title: Re:Lista Linakta circolare
Post by: Vivynz on 20-04-2009, 20:25:14
http://forum.sdai.unict.it/index.php?topic=2504.msg18025#msg18025