Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    Originariamente inviato da lelefante
    La pila e' una struttura dati che ti permette di memorizzare e prelevare i dati in successione, con la particolarita' che il primo elemento che prelevi e' l'ultimo elemento che hai inserito, un po' come se tu dovessi impilare dei piatti... da li il nome.
    Un'impementazione veloce veloce potrebbe essere questa:
    codice:
    public class pila {
    
      private final int MAX = 256;
      private char store[] = new char[MAX];
      private int cursore = -1;
      
      public boolean svuota() {
        cursore = -1;
    ..
    La differenza tra i metodi top e pop e' che top restituisce il dato in cima alla pila, senza cancellarlo.
    i metodi li ho già implementati.. ora il problema è utilizzarli...eheheh ... cioè il "codice" che ho scritto in primo post.. nn e' corretto.. ma dove esattamente sbaglio?

  2. #12
    Parti dalla lunghezza della stringa e usi un incremento negativo finchè non l'indice non diventa 0!!!
    Da lunghezza - 1, altrimenti scatta un`eccezione. E 0 compreso.

    Ciao.

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Questo funziona, mentre in quello che ho scritto prima c'erano un po' di boiate, riposto tutto per completezza.
    codice:
    import java.io.*;
    class Pila {
      private final int MAX = 256;
      private char store[] = new char[MAX];
      private int cursore = -1;
      
      public void svuota() {
        cursore = -1;
      }
    
      public void push( char c) {
        if( !piena()) {
          cursore++;
          store[cursore] = c;
        }
      }
    
      public char pop() {
        if( vuota()) return 0;
        else return store[cursore--];
      }
    
      public char top() {
        if( vuota()) return 0;
        else return store[cursore];
      }
    
      public boolean vuota() {
        return cursore == -1;
      }
    
      public boolean piena() {
        return cursore == (MAX-1);
      }
    }
    
    public class prova {
      public static void main( String args[]) {
        Pila pila = new Pila();
        try {
          char c = (char)System.in.read();
          while( !pila.piena() && c != '\n') {
            pila.push( c);
            c = (char)System.in.read();
          }
        } catch(IOException eIO) {
          System.err.println( eIO);
        }
        System.out.println( "La stringa rovesciata: ");
        while( !pila.vuota()) {
          System.out.print( pila.pop());
        }
        System.out.println( "\nGrazie per aver partecipato!");
      }	
    }
    Se non capisci qualcosa chiedi pure, ciao.
    Ciao,
    Lorenzo

  4. #14
    grazie mille...

    c'è un prob mi dà un errore in qui

    public class prova {
    ... il file l'ho chiamato Pila.java .. un tipo mi diceva che c'è questa cosa di chiamare la classe e il nome del file uguali..


  5. #15
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da sidin
    grazie mille...

    c'è un prob mi dà un errore in qui



    ... il file l'ho chiamato Pila.java .. un tipo mi diceva che c'è questa cosa di chiamare la classe e il nome del file uguali..

    per forza, è necesario sempre chiamare il nome della classe come il file.

    quindi se hai il file di nome Pila.java, la classe sarà

    public class Pila {

    altrimenti il .java non verrà compilato


  6. #16
    si ok infatti come 2 istruzione del codice postato da lelefante e':

    class Pila {
    e poi c'è la sottoclasse prova...

  7. #17
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Originariamente inviato da sidin
    si ok infatti come 2 istruzione del codice postato da lelefante e':



    e poi c'è la sottoclasse prova...
    poi ci sarà tutto quello che vuoi. ti da ancora problemi?

  8. #18
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    In ogni file .java puo' esserci al massimo una classe public, e in quel caso il nome del file deve essere uguale a quello della classe public. In piu' puoi inserire tutte le classi non public (sia interne che non, anonime e non) che ti servono.
    Nel esempio che ho fatto io il file lo devi chiamare prova.java, perche' la classe pubblica e' prova, mentre Pila e' una classe non pubblica.
    Ciao,
    Lorenzo

  9. #19
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Ma non so perchè fare tanti casini per invertire una stringa. Bastano due righe di codice... Le trovi anche qui

    Basta che te lo personalizzi...


  10. #20
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Immagino che il problema non sia "leggere & invertire" una stringa, ma un esercizio di programmazione... se chiede una pila avra' una pila, se avesse chiesto "come invertire una stringa" sarebbe stato diverso, cosi' come le risposte che avrebbe ricevuto. Non per nulla ho chiesto conferma all'inizio.
    Ciao,
    Lorenzo

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.