Elenet.net
+1 voto
Creare  una  classe che implementi le funzionalità di una Pila (Stack) cosi definita:
La pila ha una occupazione di memoria statica;
Sulla pila è possibile operare con le classiche operazioni POP e PUSH;
quesito posto 30 Ottobre 2013 in Classe quarta da Gianni Messina Esperto (736 punti)
  

2 Risposte

+4 voti
Ecco l'implementazione in Java di una Pila.
 
 
 
import java.util.*;
 
public class Pila {
 
public static int[] spila;
private int indice;
 
public Pila(int dim) {
spila=new int[dim];
indice=0;
 
}
 
public void Push (int a) {
spila[indice]=a;
indice++;
 
}
public int Pop () {
if (indice>0)
{
indice=indice-1;
return spila[indice];
      
}
else 
return -1;
 
}
 
public static void main (String[] args) {
 
Pila emanuele;
emanuele=new Pila (10);
 
emanuele.Push(10);
emanuele.Push(22);
 
System.out.println(emanuele.Pop());
System.out.println(emanuele.Pop());
 
 
}
}
risposta inviata 30 Ottobre 2013 da Emanuele Rizzo Esperto (238 punti)
Benissimo.
Vorrei implementare altri tre metodi pubblici:
SvuotaPila()  cancella il contenuto della pila;
LeggiPila()  visualizza tutti gli elementi contenuti nella pila,
Peek()  leggi in cima alla pila senza estrarre il valore.
Inoltre il main dovrebbe permettere all'utente di definire la grandezza della pila.

buon lavoro
potresti spiegarmi passo passo quello che hai fatto?
//metodo LeggiPila:
    public void LeggiPila() {
        int indicee;
            indicee=indice;
            while (indicee>0) {
            indicee=indicee-1;
            System.out.println(spila[indicee]);
            }
                        }
I commenti verranno messi in un javadoc.
//Questa porzione di codice permette l'inserimento della grandezza dell'array:
              
 String x;
        Scanner in = new Scanner(System.in);
         System.out.println("inserisci grandezza array");
         x=in.next();
–1 voto

--------------------------------------------Il funzionamento di una pila-------------------------------------------

La pila (o stack) è una struttura di dati dinamica gestita usando la modalità LIFO(Last In - First Out), Gli elementi vengono aggiunti da un'estremità e sono posizionati uno sopra l'altro, formando idealmente una Pila di oggetti. Il prelevamento di un elemento avviene dallo stesso capo in cui vengono inseriti e quindi l'ultimo ad essere inserito è il primo ad essere estratto.


Dichiarazione del vettore nella classe Pila.

Le operazioni per modificare la Pila sono:

-PUSH  Inserisce un elemento in cima alla Pila;

-POP  Preleva un elemento dalla cima della Pila;

 

 

Le operazioni di visualizzazione e controllo di una Pila sono:

-TOP  Restituisce l'elemento in cima alla Pila senza eliminarlo;

-VUOTA  Segnala, tramite un valore booleano, se la Pila è vuota;

-SIZE   Restituisce il numero di elementi presenti nella Pila;

 

In seguito allego un link una gif di dove spiega il funzionamento del pop e del push in una pila.

http://www.ciropersico.altervista.org/strutture_dati/pila/animazione.htm

--------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

risposta inviata 30 Ottobre 2013 da Adelfio Massimiliano Corsista (79 punti)

Domande correlate

0 voti
1 risposta
quesito posto 12 Febbraio 2014 in Classe quarta da Roberto De Rosalia Corsista (124 punti) | 1,089 visite
0 voti
1 risposta
0 voti
1 risposta
quesito posto 24 Aprile 2014 in Classe quarta da Adelfio Massimiliano Corsista (79 punti) | 176 visite
777 domande
1,565 risposte
639 commenti
1,445 utenti