SlideShare una empresa de Scribd logo
1 de 15
REPÚBLICA BOLIVARIANA DE VENEZUELA
   MINISTERIO DE EDUCACIÓN SUPERIOR
 UNIVERSIDAD BOLIVARIANA DE VENEZUELA
              SEDE: FALCÓN
PFG: INFORMÁTICA PARA LA GESTIÓN SOCIAL
   U.C: PROG. Y ESTRUCTURA DE DATOS.
    PROFESORA: LIC. BEATRIZ BARRIOS




            Pilas


          Punto Fijo, junio de 2006
Concepto de Pila
      Es un tipo especial de lista lineal en la que la
inserción y borrado de elementos se realiza sólo por un
extremo que se denomina cima o tope.


      Es una estructura con numerosas analogías en
la vida real: una pila de platos, una pila de libros, una
pila de monedas, entre otras.
Ejemplo 1:

                          Agregar un nuevo                 Eliminar un
                              elemento                      elemento



            a
         vel ia                                Novela        Cima
       No ed
               op
       c  i cl
     En          ar i
                      o
             ion                         Enciclopedia
         cc
      Di

                                             Diccionario
                                                            Fondo

Aplicaciones                                  
                                                  5+2 – (3+4)




   Los editores de texto proporcionan normalmente un
    botón deshacer que cancela las operaciones de
    edición recientes y restablece el estado anterior del
    documento. La secuencia de operaciones recientes
    se mantiene en una Pila.


   Los navegadores permiten habitualmente volver
    hacia atrás en la secuencia de páginas visitadas.
    Las direcciones de los sitios visitados se almacenan
    en una Pila.
Operaciones Básicas de Manipulación
            Apilar: Añade un nuevo elemento a la pila, el cual se ubicará en la cima de
             pila.
            Desapilar: Elimina un elemento situado en la cima de la Pila. Luego de
             desapilar existirá una nueva cima.
            Inicializar Pila: Inicia la pila como vacía.
            Pila Vacía: Comprobar si la pila no tiene elementos.
            Pila Llena: Comprobar si la pila está llena de elementos. Si se encuentra
             llena no se pueden apilar nuevos elementos.
            Cima: Obtiene el elemento cima de la pila.
                      APILAR          APILAR         APILAR        DESAPILAR        APILAR




                                                      CIMA    E3                    CIMA     E4

Pila Vacía                             CIMA    E2             E2     CIMA      E2            E2

                       CIMA     E1             E1             E1               E1            E1
El tipo Pila implementado con Arrays.
         Una Pila se puede implementar mediante arrays o mediante listas
enlazadas. Una implementación estática se realiza utilizando un array de
tamaño fijo y una implementación dinámica mediante una lista enlazada.

          El tipo Pila implementado con arrays incluye una lista (array) y un
índice a la cima de la Pila; además, una constante con el máximo número de
elementos. Al utilizar un array para contener los elementos de la pila hay que
tener en cuenta que el tamaño de la pila no puede exceder el número de
elementos del array, y la condición pila llena será significativa para el diseño.

Ejemplo 2: Una pila de 6 elementos se puede representar gráficamente así:
                                     Cima



                             0   1     2    3     4    5

                   Pila vacía:                        Pila llena:
                                     Puntero de
                   puntero de                         puntero de
                                       la Pila
                   la pila=-1                          a pila=5
El tipo Pila implementado con Arrays.
(Cont...)
         Si se almacenan los datos A, B, C, . . . , en la Pila se puede representar
gráficamente de alguna de estas formas:

                                                A    B     C   ...

    Cima = 2     C
                 B                              Índice
                 A

     La Pila en función de diferentes situaciones de un posible programa.
                      Pila vacía
                                                         ...
                      Cima=-1
                      Insertar 50
                                      50                 ...
                      Cima=-0
                      Insertar 25
                                      50   25            ...
                      Cima= 1

                      Quitar (Cima)   50
                      Cima=-0
El tipo Pila implementado con Arrays.
(Cont...)

                        Declaración
Sintaxis:                               Ejemplo:
#define TAMPILA 100
                                        #define TAMPILA 100
Tipo de dato Nombre Vector [TAMPILA];
                                        int pila [TAMPILA];
Int cima;
                                        int cima;
El tipo Pila implementado con Arrays.
(Cont...)
   Implementación de las operaciones
Apilar:
Incrementa la cima de la Pila en 1 y asigna el nuevo elemento a la
lista de la Pila. Cualquier intento de añadir un elemento en una
pila llena produce un mensaje de error de desbordamiento pila y
debe terminar el programa.
                      void apilar ( int n )
                      {
                         if ( pilallena() = = true )
                            cout<< “Pila LLena”;
                         else
                         {
                            cima + +;
                            pila[cima]=n;
                         }
                       }
El tipo Pila implementado con Arrays.
(Cont...)
    Implementación de las operaciones
Desapilar:
Copia primero el valor de cima de la Pila en una variable local auxiliar, y a
continuación decrementa la cima de la Pila en 1. El objetivo de la
operación es retirar el elemento cima, no obstante la función devuelve la
variable auxiliar para que pueda sr utilizada. Si se intenta eliminar o borrar
un elemento en una pila vacía se debe producir un mensaje de error y
terminar.                 int desapilar ( void )
                          {
                           int aux;
                            if ( pilavacia() = = true )
                               cout<< “Pila Vacia”;
                            else
                            {
                               aux=pila[cima];
                               cima- -;
                               return aux;
                            }
                          }
El tipo Pila implementado con
Arrays. (Cont...)
   Implementación de las operaciones
Cima:
Devuelve el elemento que se encuentra en la cima de la Pila: no se
modifica la Pila.


                      int cima ( void )
                      {
                       return pila[cima];
                      }
El tipo Pila implementado con
Arrays. (Cont...)
Operaciones de verificación del estado de la Pila
Pila Vacía:
Verifica se la cima de la Pila es -1. En ese caso, la pila está vacía y se
devuelve un 1 (verdadero), en caso contrario, devuelve ceo (falso).


                        int pilavacia ( void )
                        {
                          if ( cima==-1 )
                             return 1;
                          else
                             return 0;
                        }
El tipo Pila implementado con
Arrays. (Cont...)
Operaciones de verificación del estado de la Pila
Pila Llena:
Verifica si la cima es TAMPILA-1. En ese caso la pila está llena y se
devuelve un 1 (verdadero) en caso contrario, se devuelve 0 (falso).


                       int pilallena ( void )
                       {
                         if ( cima==TAMPILA-1 )
                            return 1;
                         else
                            return 0;
                       }
El tipo Pila implementado con
Arrays. (Cont...)
Operaciones de verificación del estado de la Pila
Inicializar Pila:
Vacía íntegramente la Pila, para lo que pone cima al valor que se
corresponda con Pila Vacía (-1).


                     void inicializarpila ( void )
                     {
                       cima=-1;
                     }
Ejercicio 1.
Escribir un programa que cree una pila de enteros y realice
operaciones de apilar y desapilar,


Desarrolle un programa que permita conocer si una pila está llena o
está vacía


Desarrolle un programa que permita calcular el cuadrado de los
elementos de una pila y guardar los resultados en una segunda pila

Más contenido relacionado

La actualidad más candente

Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una colajeffersoncenteno
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Stalin Eduardo Tusa Vitar
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en javaLuis Miguel De Bello
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosK Manuel TN
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalclaudyabra
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilasAndreita Enriquez
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
ED Unidad 3: Estructuras de datos lineales (listas)
ED Unidad 3: Estructuras de datos lineales (listas) ED Unidad 3: Estructuras de datos lineales (listas)
ED Unidad 3: Estructuras de datos lineales (listas) Franklin Parrales Bravo
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)Kelinci Coklat
 

La actualidad más candente (20)

Computo movil ejercicio clases resuelto
Computo movil ejercicio clases resueltoComputo movil ejercicio clases resuelto
Computo movil ejercicio clases resuelto
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una cola
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
 
PILAS
PILASPILAS
PILAS
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Curso my sql
Curso my sqlCurso my sql
Curso my sql
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilas
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
ED Unidad 3: Estructuras de datos lineales (listas)
ED Unidad 3: Estructuras de datos lineales (listas) ED Unidad 3: Estructuras de datos lineales (listas)
ED Unidad 3: Estructuras de datos lineales (listas)
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
 

Similar a Pilas: Concepto, implementación y operaciones básicas

Similar a Pilas: Concepto, implementación y operaciones básicas (20)

Pilasen c++
Pilasen c++Pilasen c++
Pilasen c++
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02
 
Estructura de datos pilas y colas
Estructura de datos pilas y colasEstructura de datos pilas y colas
Estructura de datos pilas y colas
 
Pilas
PilasPilas
Pilas
 
Curso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionCurso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacion
 
Pilas .pptx
Pilas .pptxPilas .pptx
Pilas .pptx
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
 
PILAS
PILASPILAS
PILAS
 
Dionely torres 11 1150
Dionely torres 11 1150Dionely torres 11 1150
Dionely torres 11 1150
 
Pilas
PilasPilas
Pilas
 
Pilas Struct
 Pilas Struct Pilas Struct
Pilas Struct
 
Estructuradedatosipilas 101118211345-phpapp02
Estructuradedatosipilas 101118211345-phpapp02Estructuradedatosipilas 101118211345-phpapp02
Estructuradedatosipilas 101118211345-phpapp02
 
DECLARACIÓN DE PILAS.pdf
DECLARACIÓN DE PILAS.pdfDECLARACIÓN DE PILAS.pdf
DECLARACIÓN DE PILAS.pdf
 
Pilas Dylan Medina.pdf
Pilas Dylan Medina.pdfPilas Dylan Medina.pdf
Pilas Dylan Medina.pdf
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas colas
Pilas colasPilas colas
Pilas colas
 
Pilas
PilasPilas
Pilas
 
Pilas
PilasPilas
Pilas
 

Pilas: Concepto, implementación y operaciones básicas

  • 1. REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DE EDUCACIÓN SUPERIOR UNIVERSIDAD BOLIVARIANA DE VENEZUELA SEDE: FALCÓN PFG: INFORMÁTICA PARA LA GESTIÓN SOCIAL U.C: PROG. Y ESTRUCTURA DE DATOS. PROFESORA: LIC. BEATRIZ BARRIOS Pilas Punto Fijo, junio de 2006
  • 2. Concepto de Pila Es un tipo especial de lista lineal en la que la inserción y borrado de elementos se realiza sólo por un extremo que se denomina cima o tope. Es una estructura con numerosas analogías en la vida real: una pila de platos, una pila de libros, una pila de monedas, entre otras.
  • 3. Ejemplo 1: Agregar un nuevo Eliminar un elemento elemento a vel ia Novela Cima No ed op c i cl En ar i o ion Enciclopedia cc Di Diccionario Fondo
  • 4.  Aplicaciones  5+2 – (3+4)  Los editores de texto proporcionan normalmente un botón deshacer que cancela las operaciones de edición recientes y restablece el estado anterior del documento. La secuencia de operaciones recientes se mantiene en una Pila.  Los navegadores permiten habitualmente volver hacia atrás en la secuencia de páginas visitadas. Las direcciones de los sitios visitados se almacenan en una Pila.
  • 5. Operaciones Básicas de Manipulación  Apilar: Añade un nuevo elemento a la pila, el cual se ubicará en la cima de pila.  Desapilar: Elimina un elemento situado en la cima de la Pila. Luego de desapilar existirá una nueva cima.  Inicializar Pila: Inicia la pila como vacía.  Pila Vacía: Comprobar si la pila no tiene elementos.  Pila Llena: Comprobar si la pila está llena de elementos. Si se encuentra llena no se pueden apilar nuevos elementos.  Cima: Obtiene el elemento cima de la pila. APILAR APILAR APILAR DESAPILAR APILAR CIMA E3 CIMA E4 Pila Vacía CIMA E2 E2 CIMA E2 E2 CIMA E1 E1 E1 E1 E1
  • 6. El tipo Pila implementado con Arrays. Una Pila se puede implementar mediante arrays o mediante listas enlazadas. Una implementación estática se realiza utilizando un array de tamaño fijo y una implementación dinámica mediante una lista enlazada. El tipo Pila implementado con arrays incluye una lista (array) y un índice a la cima de la Pila; además, una constante con el máximo número de elementos. Al utilizar un array para contener los elementos de la pila hay que tener en cuenta que el tamaño de la pila no puede exceder el número de elementos del array, y la condición pila llena será significativa para el diseño. Ejemplo 2: Una pila de 6 elementos se puede representar gráficamente así: Cima 0 1 2 3 4 5 Pila vacía: Pila llena: Puntero de puntero de puntero de la Pila la pila=-1 a pila=5
  • 7. El tipo Pila implementado con Arrays. (Cont...) Si se almacenan los datos A, B, C, . . . , en la Pila se puede representar gráficamente de alguna de estas formas: A B C ... Cima = 2 C B Índice A La Pila en función de diferentes situaciones de un posible programa. Pila vacía ... Cima=-1 Insertar 50 50 ... Cima=-0 Insertar 25 50 25 ... Cima= 1 Quitar (Cima) 50 Cima=-0
  • 8. El tipo Pila implementado con Arrays. (Cont...) Declaración Sintaxis: Ejemplo: #define TAMPILA 100 #define TAMPILA 100 Tipo de dato Nombre Vector [TAMPILA]; int pila [TAMPILA]; Int cima; int cima;
  • 9. El tipo Pila implementado con Arrays. (Cont...) Implementación de las operaciones Apilar: Incrementa la cima de la Pila en 1 y asigna el nuevo elemento a la lista de la Pila. Cualquier intento de añadir un elemento en una pila llena produce un mensaje de error de desbordamiento pila y debe terminar el programa. void apilar ( int n ) { if ( pilallena() = = true ) cout<< “Pila LLena”; else { cima + +; pila[cima]=n; } }
  • 10. El tipo Pila implementado con Arrays. (Cont...) Implementación de las operaciones Desapilar: Copia primero el valor de cima de la Pila en una variable local auxiliar, y a continuación decrementa la cima de la Pila en 1. El objetivo de la operación es retirar el elemento cima, no obstante la función devuelve la variable auxiliar para que pueda sr utilizada. Si se intenta eliminar o borrar un elemento en una pila vacía se debe producir un mensaje de error y terminar. int desapilar ( void ) { int aux; if ( pilavacia() = = true ) cout<< “Pila Vacia”; else { aux=pila[cima]; cima- -; return aux; } }
  • 11. El tipo Pila implementado con Arrays. (Cont...) Implementación de las operaciones Cima: Devuelve el elemento que se encuentra en la cima de la Pila: no se modifica la Pila. int cima ( void ) { return pila[cima]; }
  • 12. El tipo Pila implementado con Arrays. (Cont...) Operaciones de verificación del estado de la Pila Pila Vacía: Verifica se la cima de la Pila es -1. En ese caso, la pila está vacía y se devuelve un 1 (verdadero), en caso contrario, devuelve ceo (falso). int pilavacia ( void ) { if ( cima==-1 ) return 1; else return 0; }
  • 13. El tipo Pila implementado con Arrays. (Cont...) Operaciones de verificación del estado de la Pila Pila Llena: Verifica si la cima es TAMPILA-1. En ese caso la pila está llena y se devuelve un 1 (verdadero) en caso contrario, se devuelve 0 (falso). int pilallena ( void ) { if ( cima==TAMPILA-1 ) return 1; else return 0; }
  • 14. El tipo Pila implementado con Arrays. (Cont...) Operaciones de verificación del estado de la Pila Inicializar Pila: Vacía íntegramente la Pila, para lo que pone cima al valor que se corresponda con Pila Vacía (-1). void inicializarpila ( void ) { cima=-1; }
  • 15. Ejercicio 1. Escribir un programa que cree una pila de enteros y realice operaciones de apilar y desapilar, Desarrolle un programa que permita conocer si una pila está llena o está vacía Desarrolle un programa que permita calcular el cuadrado de los elementos de una pila y guardar los resultados en una segunda pila