Last active
May 3, 2017 17:19
-
-
Save MichelePrimavera/10919f9c5e9143fcf353955340546fe5 to your computer and use it in GitHub Desktop.
IMPLEMENTAZIONE DELLA PILA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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