Pages: [1]   Go Down
Print
Author Topic: Dubbio su questa lista  (Read 1018 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 28-03-2009, 16:16:12 »

Ragazzi potete per favore vedere se questo tipo di implementazione per la lista va bene?

CLASSE "NODO"
Code:
public class Nodo
{
private Object info;
private Nodo next;
private static int cont;

public Nodo(Object val1)
{
info=val1;
cont++;
}

public Nodo(Object val, Nodo m)
{
info=val;
next=m;
cont++;
}

public void setNext(Nodo h)
{
next=h;
}

public Nodo getNext()
{
return next;
}

public void setInfo(Object x)
{
info=x;
}

public Object getInfo()
{
return info;
}

public static int contaNodi()
{
return cont;
}
}

CLASSE "LISTA"

Code:
class Lista
{
private static Nodo head;

public Lista(Nodo k)
{
head=k;
}

public void InsertHead(int val)
{
head=new Nodo(val,head);
}

public static int contaNodi()
{
return head.contaNodi();
}

public void Stampa() //METODO USATO PER STAMPARE LA LISTA COMPLETA A VIDEO
{
Nodo aux=head;
String str="";
int x=contaNodi();
while (x!=0)
{
x--;
str="il nodo vale: "+aux.getInfo();
aux=aux.getNext();
System.out.println(str);
}
}
}

"MAIN"

Code:
import javax.swing.*;
import java.io.*;
public class mainLista
{
public static void main(String args[]) throws Exception
{
Nodo head=new Nodo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il valore della testa")));
Lista x=new Lista(head);
Nodo aux = head;
for(int i=0; i<3 ; i++)
{
aux.setNext( new Nodo(Integer.parseInt(JOptionPane.showInputDialog("Inserisci il valore del "+(i+1)+"° nodo"))));
aux = aux.getNext();
}
x.Stampa();
System.out.println();
x.InsertHead(150);
x.Stampa();
}
}

Vi ringrazio per la collaborazione ok
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
genietto84
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 342



« Reply #1 on: 28-03-2009, 17:08:14 »

Ragazzi potete per favore vedere se questo tipo di implementazione per la lista va bene?

CLASSE "NODO"
Code:
public class Nodo
{
private Object info;
private Nodo next;
private static int cont;

public Nodo(Object val1)
{
info=val1;
cont++;
}

public Nodo(Object val, Nodo m)
{
info=val;
next=m;
cont++;
}

.....

Il nodo deve conoscere solo la sua "info" e il suo successivo, non ha interesse a sapere quanti sono tutti i nodi. Quindi il contatore va spostato nella lista 
Inoltre nel primo costruttore non sarebbe meglio mettere anche "next = null" ?!

CLASSE "LISTA"

Code:

public void Stampa() //METODO USATO PER STAMPARE LA LISTA COMPLETA A VIDEO
{
Nodo aux=head;
String str="";
int x=contaNodi();
while (x!=0)
{
x--;
str="il nodo vale: "+aux.getInfo();
aux=aux.getNext();
System.out.println(str);
}
}
}

Aggiungerei un costruttore senza nodo iniziale. Come detto sopra manca il contatore dei nodi aggiunti. E non hai bisogno di contare quanti nodi ci sono... c'è una altro modo per sapere quando sei arrivato alla fine della lista...
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #2 on: 29-03-2009, 15:59:33 »

Ragazzi potete per favore vedere se questo tipo di implementazione per la lista va bene?

CLASSE "NODO"
Code:
public class Nodo
{
private Object info;
private Nodo next;
private static int cont;

public Nodo(Object val1)
{
info=val1;
cont++;
}

public Nodo(Object val, Nodo m)
{
info=val;
next=m;
cont++;
}

.....

Il nodo deve conoscere solo la sua "info" e il suo successivo, non ha interesse a sapere quanti sono tutti i nodi. Quindi il contatore va spostato nella lista 
Inoltre nel primo costruttore non sarebbe meglio mettere anche "next = null" ?!

CLASSE "LISTA"

Code:

public void Stampa() //METODO USATO PER STAMPARE LA LISTA COMPLETA A VIDEO
{
Nodo aux=head;
String str="";
int x=contaNodi();
while (x!=0)
{
x--;
str="il nodo vale: "+aux.getInfo();
aux=aux.getNext();
System.out.println(str);
}
}
}

Aggiungerei un costruttore senza nodo iniziale. Come detto sopra manca il contatore dei nodi aggiunti. E non hai bisogno di contare quanti nodi ci sono... c'è una altro modo per sapere quando sei arrivato alla fine della lista...
ti ringrazio ora farò le modifiche dovute
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: [1]   Go Up
Print
Jump to: