Esercizio 4
Realizza un programma per gestire una coda di interi di max 5 elementi attraverso una classe Coda che deve prevedere dei metodi per l'inserimento e per l'estrazione di un elemento.
import java.util.Scanner;
class provaCoda{
public static void main (String args []){
Scanner in=new Scanner(System.in);
int ch,num;
Coda p = new Coda();
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 provaCoda
class Coda {
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--;
for(i=0;i < T.length-1;i++)T[i]=T[i+1];
T[j]=0;
full=false;
print();
}//fine pop
}//fine classe Coda
class provaCoda{
public static void main (String args []){
Scanner in=new Scanner(System.in);
int ch,num;
Coda p = new Coda();
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 provaCoda
class Coda {
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--;
for(i=0;i < T.length-1;i++)T[i]=T[i+1];
T[j]=0;
full=false;
print();
}//fine pop
}//fine classe Coda
La coda si differenzia dalla pila solo per la modalità di estrazione di
un elemento che qui è stata assicurata dalla modifica apportata al metodo
pop() attraverso le due istruzioni:
for(i=0;i < T.length-1;i++)T[i]=T[i+1];
T[j]=0; .