pilas-colas

Iniciado por Gi-se, 26 Mayo 2019, 18:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Gi-se

una consulta, me ayudan como debo hacer el siguiente ejercicio. gracias

Utilizando  las operaciones de pila y de Fila, que COPIE el contenido de una pila P, a una Fila C, de tal manera que el primer elemento de la Fila será el elemento "F" que se encuentra en el fondo de la pila, el segundo de la Fila el que está apilado sobre "F", y así siguiendo. De esta forma el elemento del tope de la pila quedará en el último lugar de la Fila. (Para resolver este ejercicio, use pila auxiliar)

aitorBoole

#1
¿En que lenguaje debes programarlo? Bueno, teniendo simplemente en cuenta el enunciado, programe en Java lo que pedía:

-------------------------------------

public class Ejercicio {

   public static void main(String[] args) {
      
      int cont = 0;  //Contador para posteriormente determinar la profundidad de la pila
      
      LinkedList<String> pila = new LinkedList<String>(); //Creación de la pila
      pila.push("ContenidoA");
      pila.push("ContenidoB");
      pila.push("ContenidoC");
      pila.push("ContenidoD");
      pila.push("ContenidoE");
      
      cont--;
      
      LinkedList<String> fila = new LinkedList<String>();  //Creacion de la fila
      
      for (String string : pila){  //Determinar la profundidad de la pila
         cont ++;
      }
      
      for (;cont>=0; cont--) {  //Volcado de los elementos de la pila a la fila
         fila.add(pila.get(cont));
      }
      
      for (String contenido : fila){  //Impresión del contenido de la fila
         System.out.println(contenido);

      }
   }
}

----------------------------------

Espero que te ayude y que fuese esto la respuesta a tu pregunta. Buena suerte!
Salu2, Aitor

Daghdha

Mirate como funciona el algoritmo LIFO para entenderlo mejor.

Saludos

Serapis

Toma media docena de libros, pon uno sobre la mesa, APILA el resto encima... este es el montón1, pila1
Ahora toma otra media docena de libros, ponlos de pie en FILA, uno detrás de otro medio abiertos para que no se caigan... En esta fila ahora deja espacio para los otros 6 libros, (imagina que ya hubieras quitado estos, peor déjalos)... sesta es la cola1, fila que tu llamas.

Bien ahora haz manualmente toma el libro del tope del montón1, ponlo en otro montón2... luego toma el que ahora está en la cima del montón1 apílalo encima del montón2... repite hasta que quede vacío el montón1.

Ahora tienes arriba en el montón2 el que antes estaba abajo en el montón1, es decir con otra pila auxliar2,  has invertido el orden que había en la pila1...

Ahora es fácil encolar los libros en el orden pedido desde la pila2, basta tomar el de arriba y ponerlo detrás en la cola (de libros que están de pie).

En pseudocódigo:

pila2 = nueva pila

mientras pila1.NoVacia
  pila2.push( pila1.pop)
repetir

mientras pila2.novacia
  cola.push(pila2.pop)
repetir

 
Hazme caso y hazlo con los libros, así lo ebntederás bien del todo... y ahora te toca a ti pasarlo al lenguaje que estés usando...