Java - Ayuda Pila Invertida en java

 
Vista:
Imágen de perfil de Emmanuel

Ayuda Pila Invertida en java

Publicado por Emmanuel (1 intervención) el 08/10/2014 05:43:16
Necesito hacer una pila que inserte 10 valores en la Pila1 y serán ingresados por teclado por el usuario una vez completa la Pila1 los datos se pasaran a una segunda pila (Pila2) pero de manera invertida, tengo alguna parte del código en el cual he estado trabajando creando una tercera pila auxiliar pero no se de que manera hacer que mientras se estén agregando datos en la pila 1 y auxiliar los datos de la pila auxiliar se ingresen en la pila2 de manera que queden invertidas a los de la primera, les agradecería que me pudieren ayudar, de antemano gracias.

Dispongo de los siguientes métodos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package pilaestatica;
 
 
public class PilaEstatica {
 
    private static final int max=10;
    private int cima;
    private final int[] pila;
 
 
    public PilaEstatica() {
        cima = -1;
        pila = new int[max];
    }
 
    public boolean pilaVacia() {
        return cima == -1;
    }
 
    public boolean pilaLlena() {
        return cima == max - 1;
    }
 
    public void insertar(int elemento) {
        if (pilaLlena()) {
            System.out.println("desbordamiento de pila");
        } else {
            cima++;
            pila[cima] = elemento;
        }
    }
 
    public int sacar() {
        int aux = -1;
 
        if (pilaVacia()) {
            System.out.println("no hay elementos en la pila");
            return aux;
        } else {
            aux = pila[cima];
            cima--;
            return aux;
        }
    }
 
    public void visualizar() {
 
        if (cima == -1) {
            System.out.println("La pila esta vacia");
        } else {
            for (int i = cima; i >= 0; i--) {
                if (i == cima) {
                    System.out.println("Cima-> [" + i + "] : " + pila[i]);
                } else if (i == 0) {
                    System.out.println("Fondo->[" + i + "] : " + pila[i]);
                } else {
                    System.out.println("       [" + i + "] : " + pila[i]);
                }
            }
        }
    }
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package pilaestatica;
 
import java.util.*;
 
public class InvertirPila {
 
    public static void main(String[] args) {
 
        PilaEstatica Pila1 = new PilaEstatica();
        PilaEstatica Pila2 = new PilaEstatica();
        PilaEstatica PiAux = new PilaEstatica();
 
        Scanner teclado = new Scanner(System.in);
        int dato;
 
        for (int i = 0; i < 10; i++) {
            System.out.print("Ingrese un valor");
            dato = teclado.nextInt();
        {
        Pila1.insertar(dato);
        PiAux.insertar(dato);
 
}
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder