Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 36
  1. #11
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    forse tu dici una cosa del genere?

    il 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 lista
    codice:
    public class IntSSList {
    	
    	private IntNode head, tail;
    	
    	public IntSSList() {
    		
    		IntNode head= new IntNode(8);
    		
    		IntNode aux = head;
    		
    		aux.next= new IntNode(10);
    		aux.next.next= new IntNode(808);
    		
    	}
    	
    	public boolean isEmpty() {
    		
    		return head ==null;
    		
    	}
    	
    	public void Stampa() {
    	
    		for(IntNode tmp=head; tmp !=null; tmp = tmp.next) {
    		
    		System.out.print(tmp.info+" ");
    			
    		}
    	}
    }
    e il main(utente)
    codice:
    class MyList {
    	
    	public static void main(String[]args) {
    		
    		IntSSList lista = new IntSSList();
    		
    		lista.Stampa();
    		
    	}
    }
    ma così nn mi funziona più

  2. #12
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da 5t4rdu5t
    forse tu dici una cosa del genere?

    il 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 lista
    codice:
    public class IntSSList {
    	
    	private IntNode head, tail;
    	
    	public IntSSList() {
    		
    		IntNode head= new IntNode(8);
    		
    		IntNode aux = head;
    		
    		aux.next= new IntNode(10);
    		aux.next.next= new IntNode(808);
    		
    	}
    	
    	public boolean isEmpty() {
    		
    		return head ==null;
    		
    	}
    	
    	public void Stampa() {
    	
    		for(IntNode tmp=head; tmp !=null; tmp = tmp.next) {
    		
    		System.out.print(tmp.info+" ");
    			
    		}
    	}
    }
    e il main(utente)
    codice:
    class MyList {
    	
    	public static void main(String[]args) {
    		
    		IntSSList lista = new IntSSList();
    		
    		lista.Stampa();
    		
    	}
    }
    ma così nn mi funziona più
    La classe lista deve fornire i metodi per aggiungere elementi ma non deve farlo lei, altrimenti l'utente che controllo ha sulla lista? Sarebbe una struttura completamente inutile se non puoi metterci niente no? La classe lista non deve mettere nessun elemento di per sé.

    Ripeto, la classe lista deve avere un metodo pubblico che prende un parametro di tipo int e lo aggiunge alla lista, tutto qua.

  3. #13
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    ma quindi cm dovei sistemare il tutto?, la mia idea iniziale era quella di stampare una lista già inizializzata senza metodi di aggiunta o roba simile

  4. #14
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa una domanda, se non aggiungi qualcosa alla lista (quindi non prevedi una add) come fai a stamparne il contenuto?
    RTFM Read That F*** Manual!!!

  5. #15
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    Originariamente inviato da valia
    scusa una domanda, se non aggiungi qualcosa alla lista (quindi non prevedi una add) come fai a stamparne il contenuto?
    quello posto da me inizialmente funzionava, cmq poi non capisco una cosa il main va in una nuova classe o no?

  6. #16
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Te l'ho detto prima e te lo ripeto, non funziona cosi'.

    Quando fai una struttura dati, i dati devono arrivare da fuori, quindi con dei metodi di aggiunta. Hai mai usato le classi Vector o ArrayList? Suppongo di si, se sei arrivato a fare delle strutture dati ne avrai anche usate di gia' pronte. Cosa te ne faresti della classe Vector se non avesse il metodo add?

    Ti ho detto come fare, un metodo pubblico che prende come parametro un int: internamente questo metodo creera' un IntNode e lo aggiungera' alla lista.

    Il main puoi metterlo dove vuoi, diciamo che inizialmente sarebbe meglio metterlo in una classe che non sia quella della struttura dati, almeno non puoi "barare" usando le cose private.
    E per lo stesso motivo avevo suggerito di incapsulare la classe nodo dentro la classe lista; la soluzione ovviamente non era una lista che fa un po' quello che vuole, ma una che riceve i dati e li aggiunge.

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    si parla di strutturazione ad oggetti (che tu non hai), che è difficile da spiegare in un post.

    Il main è una funzione che fa da start al programma, niente di più niente di meno. Per quale motivo deve stare assieme al codice che descrive un nodo e/o una lista?

    Ti perdi nella logica OO: il nodo non è un altro che un oggetto, può essere un intero, un long, una stringa, una casa, una macchina...come vedi io non parlo in termini di contenuto, oggetto, generico.

    La lista non è altro che una collezione di nodi (quindi di oggetti generici).
    Quando implemento una lista, di cosa ho realmente bisogno?
    Dell'info e di sapere chi è il successivo. Queste due cose in genere le riassumi nella classe Nodo (se proprio vuoi farla pubblica)

    codice:
      public class Node {
        int info;
        Node next;
      }
    mettendo i vari getter e setter e specificado almeno il costruttore.

    La tua classe Lista

    codice:
    public class MyLinkedList implements ListInterface{
         private Node head = null; 
    }

    può essere una buona definizione.
    infine

    codice:
    public interface ListInterface{
       public boolean add(Node node); 
       public Node remove(Node node); 
       public boolean isEmpty(); 
       public int size(); 
    }
    sono solo alcune delle operazioni che in genere una lista deve fornire.

    In questo mi hai visto usare un main?

    Il main lo farai a parte per testare la tua lista, andrà ad istanziare un oggetto MyLinkedList e su quello lavora.

    Ho l'impressione che hai bypassato troppi concetti base della programmazione object oriente per far funzionare tutto
    RTFM Read That F*** Manual!!!

  8. #18
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    codice:
    import java.io.InputStreamReader;
    import java.io.BufferedReader;
    
    public class IntSSList {
    	
    	private IntNode head, tail;
    	
    	public IntSSList() {
    		
    		head=tail=null;
    		
    	}
    	
    	public boolean isEmpty() {
    		
    		return head ==null;
    		
    	}
    	
    	public void addHead (int el) {
    		
    		head = new IntNode(el, head);
    		if(tail ==null)
    			tail=head;
    	}
    	
    	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(11);
    		
    		head.next = new IntNode(8);
    		
    		IntSSList lista = new IntSSList();
    		
    		lista.addHead(150);
    		lista.addHead(10);
    		
    		lista.Stampa();
    ma così penso sia sbagliato, aggiungo nodi alla testa, ma la stampa della lista?

  9. #19
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    di nuovo con coda, non ti serve a momento il riferimento a coda!!
    Non sai fare la lista linkata e devi fare la doppiamente linkata?!?
    Comprendine a pieno una, la seconda è una estensione della prima
    Ragiona, secondo logica, in una lista, dove dovresti mettere l'elemento che aggiungi? La regola è che ogni info ti dice chi è il successivo

    ps come ti ha detto kaamos, il main mettilo all'esterno della lista (Come è giusto che sia) perché non stai programmando ad oggetti!
    RTFM Read That F*** Manual!!!

  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    232
    io so che la lista semplice è composta da nodi. Ogni nodo ha due campi uno next che punta all altro nodo e info che ci da informazioni del nodo che consideriamo. Facciamo uso della classe lista per accedere appunto alla lista. La lista ha due campi head e tail. Ma un esempio pratico si può fare in modo semplice?senza interfaccie o cose simili

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 © 2026 vBulletin Solutions, Inc. All rights reserved.