/* ***********************************************
Esercizio: Inserire gli elementi di una
pila p1 in una pila p2, conservando lo stesso ordine
*********************************************** */
public class Ex_Pila1inPila2 {
public static void main(String[] args) {
//creo le due pile pił una temporanea x scambio
Pila p1 = new Pila();
Pila p2 = new Pila();
Pila pTmp = new Pila();
//riempio pila p1
int cas;
try {
while(true) {
cas = (int)(Math.random()*50+1);
p1.Push(cas);
System.out.print(cas + "\t");
}
} catch (StackFullException e) {
System.out.println("\nPila p1 riempita");
}
//copio la pila p1 nella pila pTmp
try {
while(true)
pTmp.Push(p1.Pop());
} catch (StackEmptyException e) {
System.out.println("Pila pTmp riempita con i dati della pila p1");
}
//copio la pila pTmp nella pila p2
try {
while(true)
p2.Push(pTmp.Pop());
} catch (StackEmptyException e) {
System.out.println("Pila p2 riempita con i dati della pila pTmp");
}
//Visualizzo i dati della pila p2
System.out.println("Adesso p2 contiene gli stessi dati di p1 e" +
"con lo stesso ordine, quindi riprendendoli saranno estratti " +
"nell'ordine inverso a quelli visualizzati all'inizio.");
try {
while(true)
System.out.print(p2.Pop() + "\t");
} catch (StackEmptyException e) {
System.out.println("\nPila p2 vuota!");
}
}
}