Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232

    problema stampa di una lista

    Sto cercando di impare la lista semplice linkata, vorrei fare una lista dove la lista viene stampata cn println ad esempio 10,8 e 50 cioè degli interi.
    la classe nodo è:
    codice:
    public class IntNode {
    	
    	public int info;
    	public IntNode next;
    	
    	public IntNode (int i) {
    		
    		this(i, null);
    		
    	}
    	
    	public IntNode(int i, IntNode n) {
    		
    		info = i;
    		next = n;
    		
    	}
    	
    	public int getInfo() {
    		
    		return info;
    	}
    	
    	public IntNode getNext() {
    		
    		return next;
    	}
    	
    }
    la classe lista è:
    codice:
    public class IntSSList {
    	
    	private IntNode head, tail;
    	
    	public IntSSList() {
    		
    		head = tail = null;
    		
    	}
    	
    	public boolean isEmpty() {
    		
    		return head ==null;
    		
    	}
    	
    	public void Stampa() {
    	
    		for(IntNode tmp=head; tmp !=null; tmp = tmp.next) {
    		
    		System.out.print(tmp.info+" ");
    			
    		}
    	}
    	
    	
    	public static void main(String[]args) {
    		
    		IntSSList p = new IntSSList();
    		//p.next= new IntNode(8);
    		//p.next.next=new IntNode(50);
    		
    		p.Stampa();
    		
    	}
    	
    }
    cm potrei procedere ora?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Guarda, mi sa che devi imparare a scrivere le tue richieste in italiano perché davvero non si capisce cosa vuoi!!!

    Quello che ho capito io: hai creato una linked list, vuoi stamparne a video il contenuto, ma non sai come fare? Corretto?
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    si, cmq scusa la mia dislessia.....

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Hai citato il metodo println che e' proprio il modo standard di stampare a video, quindi suppongo tu l'abbia gia' usato, che problemi incontri nell'utilizzarlo in questo caso?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    non so come stampare la lista e mettere i valori cioè inizializzarla

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    in pratica devo fare un lista semplice so che servono quelle due classi. La devo inizializzare e stampare per verificarne la correttezza, il problema è che non so come fare

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    ho provato a fare in questo modo, ma non so se è giusto, la classe nodo è sempre la stessa ho canbiato soltanto la classe lista e la ho rielaborata in qst modo:
    codice:
    public class IntSSList {
    	
    	private IntNode head, tail;
    	
    	public IntSSList(IntNode k) {
    		
    		head =k;
    		
    	}
    	
    	public boolean isEmpty() {
    		
    		return head ==null;
    		
    	}
    	
    	public void Stampa() {
    	
    		for(IntNode tmp=head; tmp !=null; tmp = tmp.next) {
    		
    		System.out.println(tmp.info+" ");
    			
    		}
    	}
    	
    	
    	public static void main(String[]args) {
    		
    		IntNode head= new IntNode(8);
    		
    		IntNode aux = head;
    		
    		aux.next= new IntNode(10);
    		aux.next.next= new IntNode(808);
    		
    		IntSSList lista = new IntSSList(head);
    		
    		lista.Stampa();
    		
    	}
    	
    }
    è giusto in base a quello che volevo fare io in partenza?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    La stampa è giusta, e la classe IntNode pure ma ha un sacco di roba inutile, sovrebbe usarla solo la lista internamente quindi non servono getter e setter; è il resto a non esser giusto, proprio concettualmente.

    Innanzitutto hai un campo per la coda all'interno della lista che non utilizzi, ma magari è un rimasuglio di copia&incolla.
    L'utente (in questo caso il main) NON deve usare la lista tramite i nodi, altrimenti a che serve?
    Se stai creando una lista di interi l'untente deve interagire con la lista SOLO tramite interi, la classe che rappresenta il singolo nodo l'utente non dovrebbe nemmeno vederla, figurati accedervi.

    La tua lista manca di un componente fondamentale ad esempio, un metodo di aggiunta: nel tuo caso questo metodo avrà un parametro di tipo int (e NON IntNode!), e al suo interno questo metodo creerà un IntNode e lo aggiungerà alla lista.
    E' altrettanto errato il costruttore pubblico che prende come parametro un IntNode, al massimo un intero, per semplicità per il momento fai un costruttore senza argomenti.

    Insomma, devi arrivare a poter utilizzare la lista dal main SENZA utilizzare neanche un solo IntNode.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    Originariamente inviato da Kaamos

    Innanzitutto hai un campo per la coda all'interno della lista che non utilizzi.
    L'utente (in questo caso il main) NON deve usare la lista tramite i nodi, altrimenti a che serve?
    Se stai creando una lista di interi l'untente deve interagire con la lista SOLO tramite interi, la classe che rappresenta il singolo nodo l'utente non dovrebbe nemmeno vederla, figurati accedervi.
    diciamo che qst parte è poco chiara per me

    E' altrettanto errato il costruttore pubblico che prende come parametro un IntNode, al massimo un intero, per semplicità per il momento fai un costruttore senza argomenti.

    Insomma, devi arrivare a poter utilizzare la lista dal main SENZA utilizzare neanche un solo IntNode.
    su questa parte ho un pò di confusione perchè se nel costruttore non metto niente mi da errore, e non so più come procedere..

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da 5t4rdu5t
    diciamo che qst parte è poco chiara per me



    su questa parte ho un pò di confusione perchè se nel costruttore non metto niente mi da errore, e non so più come procedere..
    Fai così, implementa questa classe:

    codice:
    class IntegerList {
    
      private class Node {
        int info;
        Node next;
      }
    
      private Node head;
    
      public IntegerList {
        // ti basta annullare la testa
      }
    
      public add(int integer) {
        // ...
      }
    
      public print() {
        // dovrebbe andar bene quello che hai già fatto
      }
    
    }
    Non serve nessun altro metodo, neanche un costruttore (è proprio la più scrausa delle liste).
    Prova ad usare questa lista da un'altro file, almeno non puoi "barare" coi nodi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.