ESTRUCTURA DE DATOS I
                        Pilas
PILAS
Definición:
Estructura de datos lineal donde los elementos
pueden ser añadidos o removidos solo por un
extremo.
Trabajan con filosofía LIFO (Last In- First Out ).

Ejemplos:
Pila de platos
Pila de discos
Pila de llamadas a funciones
Pila de recursión
Pila de resultados parciales de formulas aritméticas, etc.
OPERACIONES BASICAS CON PILAS

-PUSH (insertar).- Agrega un elementos a la pila en
  el extremo llamado tope.
-POP (remover).- Remueve el elemento de la pila
  que se encuentra en el extremo llamado tope.
-VACIA.- Indica si la pila contiene o no contiene
  elementos.
-LLENA.- Indica si es posible o no agregar nuevos
  elementos a la pila.
IMPLEMENTACION DE PILAS:
 Usando arreglos: Define un arreglo de una
 dimensión (vector) donde se almacenan los
 elementos.


            0   1    2   3   4   5



      TOPE: Apunta hacia el elemento que se
      encuentra en el extremo de la pila.
      (inicialmente es -1).
Ejemplo
                Insertar      Insertar      Insertar   Eliminar
                  A:            B:              C:     elemento
 Inicio:




                                                C

                                 B              B         B

                                 A              A         A
                    A

Tope       -1   Tope                     Tope          Tope
                             Tope
PILA EN ARREGLOS
Pila: Métodos en Java.
 Clase Pila
      class Pila
 Constructores
      Pila(int tamaño)
 Métodos
      boolean EstaVacia()
      boolean EstaLLena()
      void push(String dato)
      void pop()
Clase Pila
package pila_en_arreglos;

public class Pila {
  private int tamaño;
  private int top;
  private String arreglo[];

Constructor
  public Pila(int tamaño) {
    this.tamaño = tamaño;
    this.top = 0;
    this.arreglo = new String [tamaño];
  }
Métodos
Pila Vacía                    Pila Llena

public boolean EstaVacia(){   public boolean EstaLlena(){
      if(top==0){
          return true;        if(top==tamaño){
      }else{                          return true;
          return false;            }else{
      }
                                      return false;
  }
                                   }

                                }
Métodos
PUSH(Insertar)                   POP(Remover)
public void Push(String dato){   public void pop(){
     if(EstaLlena())
                                    if(EstaVacia()){
     {

  System.out.println("ERROR       System.out.println("ERR
  PILA LLENA");                   OR PILA VACIA");
     }else{
                                    } else{
       arreglo[top]=dato;
       top++;                          top--;
    }                               }
  }                               }
Métodos
Imprimir

public void imprimir(){
    if(EstaVacia())
        System.out.println("Error:pila vacía");
     else
        for(int i=0;i<top;i++)
          System.out.print(arreglo[i]+" ");
  }
Clase Main
package pila_en_arreglos;                     System.out.println();
                                                  p1.pop();
public class Main {                               p1.imprimir();
                                                  System.out.println();
  public static void main(String[] args) {        p1.pop();
    Pila p1 = new Pila(4);                        p1.imprimir();
                                                  System.out.println();
    p1.Push("a");                                 p1.pop();
    p1.Push("b");                                 p1.imprimir();
    p1.Push("c");                               }
    p1.Push("d");                            }
    p1.imprimir();
    System.out.println("POP");
    p1.pop();
    p1.imprimir();
Fin




      Autor:

               Geovanny Simbaña

Estructuradedatosipilas 101118211345-phpapp02

  • 1.
  • 2.
    PILAS Definición: Estructura de datoslineal donde los elementos pueden ser añadidos o removidos solo por un extremo. Trabajan con filosofía LIFO (Last In- First Out ). Ejemplos: Pila de platos Pila de discos Pila de llamadas a funciones Pila de recursión Pila de resultados parciales de formulas aritméticas, etc.
  • 3.
    OPERACIONES BASICAS CONPILAS -PUSH (insertar).- Agrega un elementos a la pila en el extremo llamado tope. -POP (remover).- Remueve el elemento de la pila que se encuentra en el extremo llamado tope. -VACIA.- Indica si la pila contiene o no contiene elementos. -LLENA.- Indica si es posible o no agregar nuevos elementos a la pila.
  • 4.
    IMPLEMENTACION DE PILAS: Usando arreglos: Define un arreglo de una dimensión (vector) donde se almacenan los elementos. 0 1 2 3 4 5 TOPE: Apunta hacia el elemento que se encuentra en el extremo de la pila. (inicialmente es -1).
  • 5.
    Ejemplo Insertar Insertar Insertar Eliminar A: B: C: elemento Inicio: C B B B A A A A Tope -1 Tope Tope Tope Tope
  • 6.
    PILA EN ARREGLOS Pila:Métodos en Java.  Clase Pila class Pila  Constructores Pila(int tamaño)  Métodos boolean EstaVacia() boolean EstaLLena() void push(String dato) void pop()
  • 7.
    Clase Pila package pila_en_arreglos; publicclass Pila { private int tamaño; private int top; private String arreglo[]; Constructor public Pila(int tamaño) { this.tamaño = tamaño; this.top = 0; this.arreglo = new String [tamaño]; }
  • 8.
    Métodos Pila Vacía Pila Llena public boolean EstaVacia(){ public boolean EstaLlena(){ if(top==0){ return true; if(top==tamaño){ }else{ return true; return false; }else{ } return false; } } }
  • 9.
    Métodos PUSH(Insertar) POP(Remover) public void Push(String dato){ public void pop(){ if(EstaLlena()) if(EstaVacia()){ { System.out.println("ERROR System.out.println("ERR PILA LLENA"); OR PILA VACIA"); }else{ } else{ arreglo[top]=dato; top++; top--; } } } }
  • 10.
    Métodos Imprimir public void imprimir(){ if(EstaVacia()) System.out.println("Error:pila vacía"); else for(int i=0;i<top;i++) System.out.print(arreglo[i]+" "); }
  • 11.
    Clase Main package pila_en_arreglos; System.out.println(); p1.pop(); public class Main { p1.imprimir(); System.out.println(); public static void main(String[] args) { p1.pop(); Pila p1 = new Pila(4); p1.imprimir(); System.out.println(); p1.Push("a"); p1.pop(); p1.Push("b"); p1.imprimir(); p1.Push("c"); } p1.Push("d"); } p1.imprimir(); System.out.println("POP"); p1.pop(); p1.imprimir();
  • 12.
    Fin Autor: Geovanny Simbaña