Skip to content

Instantly share code, notes, and snippets.

@MichelePrimavera
Last active May 3, 2017 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MichelePrimavera/10919f9c5e9143fcf353955340546fe5 to your computer and use it in GitHub Desktop.
Save MichelePrimavera/10919f9c5e9143fcf353955340546fe5 to your computer and use it in GitHub Desktop.
IMPLEMENTAZIONE DELLA PILA
/* Programma scritto da Michele Primavera
* Implementazione di una pila
* Non prendete questo codice come se fosse la bibbia, sono alle prime armi anche io
*
* #AUP
* */
import java.util.Scanner; //per utilizzare lo scanner
public class Principale {
public static void main(String[] args) {
// TODO Auto-generated method stub
//permette la scelta
int scelta;
Scanner acquisisci= new Scanner(System.in);
//costruisco la Pila
Pila pila= new Pila(4);
do{
//Menu senza switch in onore della Mongiello
System.out.println("\nCosa vuoi fare?");
System.out.println("\n1.Inserire un elemento nella pila");
System.out.println("\n2 Togliere un elemento dalla pila");
System.out.println("\n3 Leggere l'ultimo elemento");
System.out.println("\n4 Controllare se la è piena");
System.out.println("\n5.Leggere l'intera pila");
System.out.println("\n0 Termina programma");
System.out.println("\nScelta: ");
scelta= acquisisci.nextInt(); //acquisisco la scelta
if (scelta==1){
pila.Push();
}
if (scelta==2){
pila.Pop();
}
if (scelta==3){
System.out.print("L'ultimo elemento inserito è: "+ pila.Leggi());
}
if (scelta==4){
pila.Pieno();
}
if (scelta==5){
pila.visualizzaVettore();
}
}while(scelta!=0); //per ripetere il programma
//chiudo lo scanner
acquisisci.close();
}
}
//CLASSE PILA (VOLENDO POTRESTE CREARE UNA NUOVA CLASSE E INCOPIARE QUESTA PARTE QUI
public class Pila {
//indice
int i=0;
//pila
String vet[];
//valore massimo della pila
int maxVal;
//per leggere da tastiera un valore
Scanner acquisisci= new Scanner(System.in);
//valore che inseriamo nella pila
String val;
//Costruttore della pila
public Pila(int n){
maxVal=n;
vet= new String [maxVal];
}
//Metodo spingi
public void Push(){
if (i<maxVal){ //non deve sforare la lunghezza massima del vettore
System.out.println("Inserisci un valore da inserire nella pila: ");
val= acquisisci.next();
vet[i]=val;
i++;
}else{
//err fa comparire la scritta rossa, nulla di che
System.err.println("\nHai superato la lunghezza del vettore. \nSe deciderai di scrivere un elemento, esso sovrascriverà quello situato nella prima posizione" );
i=0; //mi riporta alla prima posizione
}
}
//Metodo succhia
public void Pop(){
if(i>0){
i--;
vet[i]=null;
}
}
//Metodo per leggere l'ultimo elemento
public String Leggi(){
if(i>0){
return vet[i-1];
}else {
return null;
}
}
//Metodo che ci dice se la pila è piena
public boolean Pieno(){
if(i==0){
System.out.println("La pila non è piena");
return false;
} else{
System.out.println("La pila non è piena");
return true;
}
}
//Metodo per visualizzare l'intera pila
public void visualizzaVettore(){
System.out.println("La tua pila è: ");
for (int j=0; j<maxVal; j++){
System.out.println(vet[j]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment