Esercizio 3
Realizza un programma per gestire una pila di interi di max 5 elementi attraverso una classe pila che deve prevedere dei metodi per l'inserimento e per l'estrazione di un elemento.
import java.util.Scanner;
class provaPila{
public static void main (String args []){
Scanner in=new Scanner(System.in);
int ch,num;
Pila p = new Pila();
do{
System.out.println("1-Push");
System.out.println("2-Pop");
System.out.println("3-Exit");
ch =in.nextInt();
switch (ch) {
case 1:
System.out.print("inserisci:");
num=in.nextInt();
p.push(num);
break;
case 2:
System.out.println("estrazione");
p.pop();
break;
case 3:
System.out.println("EXIT"); break;
default:
System.out.println("selezione non valida");
break;
}//fine switch
}while(ch!=3);
in.close();
}//fine main
}// fine classe provaPila
class Pila {
private boolean full=false;
private int i,j;
private int T[] = new int[5];
public void print(){
for(i=0;i < T.length;i++)
System.out.print(T[i]+" ");
System.out.println("-> j="+j);
}//fine print
public void push(int numero){
if(!full){
T[j] = numero;
j++;
if(j==T.length)full=true;
}
print();
}//fine push
public void pop(){
if(j!=0)j--;
T[j]=0;
full=false;
print();
}//fine pop
}//fine classe Pila
class provaPila{
public static void main (String args []){
Scanner in=new Scanner(System.in);
int ch,num;
Pila p = new Pila();
do{
System.out.println("1-Push");
System.out.println("2-Pop");
System.out.println("3-Exit");
ch =in.nextInt();
switch (ch) {
case 1:
System.out.print("inserisci:");
num=in.nextInt();
p.push(num);
break;
case 2:
System.out.println("estrazione");
p.pop();
break;
case 3:
System.out.println("EXIT"); break;
default:
System.out.println("selezione non valida");
break;
}//fine switch
}while(ch!=3);
in.close();
}//fine main
}// fine classe provaPila
class Pila {
private boolean full=false;
private int i,j;
private int T[] = new int[5];
public void print(){
for(i=0;i < T.length;i++)
System.out.print(T[i]+" ");
System.out.println("-> j="+j);
}//fine print
public void push(int numero){
if(!full){
T[j] = numero;
j++;
if(j==T.length)full=true;
}
print();
}//fine push
public void pop(){
if(j!=0)j--;
T[j]=0;
full=false;
print();
}//fine pop
}//fine classe Pila
Nella classe Pila è stata inserita la variabile
logica full che indica se la pila è piena o vuota,
la variabile j tiene conto della posizione dell'ultimo
elemento inserito.
In realtà ci vorrebbero anche i metodi che segnalano se la pila è piena
o vuota. La classe Pila non è dotata di costruttore,
quindi, al momento della creazione dell'oggetto. Tutti i suoi attributi
sono impostati a 0.