Pilas en Java

4
 Pilas en Java Una pila no es más que una colección de valores de tipo LIFO ( Last In First Out), o sea el último valor insertado en la pila es el primero en salir o ejecutarse. Mediante un array conseguiremos construir nuestra pila de datos en Java. Para eso creamos la siguiente clase llamada Stack:  public class Stack {  private int stck[];  private int tos; //Constructor  Stack(int size){ //Crear la pila stck = new int[size]; tos = -1; } //Introduce valor en la pila  void  push(int value) { if (tos == stck.length - 1) System.out.println("Stack Overflow!" ); //Pila esta llena else stck[++tos] = value; //Almacena valor en pila  } //Retira valor de la pila  int pop() { if (tos < 0) { //La pila esta vacia  System.out.println("Stack Underflow!" ); return 0; } else return stck[tos--]; } } 

description

JAVA

Transcript of Pilas en Java

  • Pilas en Java

    Una pila no es ms que una coleccin de valores de tipo LIFO (Last In First Out), o sea el ltimo

    valor insertado en la pila es el primero en salir o ejecutarse.

    Mediante un array conseguiremos construir nuestra pila de datos en Java. Para eso creamos la

    siguiente clase llamada Stack:

    public class Stack {

    private int stck[];

    private int tos;

    //Constructor

    Stack(int size){

    //Crear la pila

    stck = new int[size];

    tos = -1;

    }

    //Introduce valor en la pila

    void push(int value) {

    if (tos == stck.length - 1)

    System.out.println("Stack Overflow!");

    //Pila esta llena

    else

    stck[++tos] = value;

    //Almacena valor en pila

    }

    //Retira valor de la pila

    int pop() {

    if (tos < 0) {

    //La pila esta vacia

    System.out.println("Stack Underflow!");

    return 0;

    } else

    return stck[tos--];

    }

    }

    http://www.google.com/search?hl=en&q=allinurl%3Astack+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Astack+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Asystem+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Asystem+java.sun.com&btnI=I%27m%20Feeling%20Lucky

  • El primer mtodo de la clase es el constructor, al constructor tenemos que pasarle un parmetro

    que indique el tamao de la pila. Dentro del constructor se crea una matriz con el tamao

    especificado a travs del constructor y se le asigna el valor -1 a la variable tos (eso indica que la

    pila est vaca).

    El siguiente mtodo push() introduce un valor al principio de la pila, primero se comprueba si la

    pila est llena, en caso contrario agrega el valor introducido en la pila. El ltimo mtodo pop()

    elimina de la pila el ltimo valor insertado y lo devuelve (tambin se comprueba que la pila no est

    vaca).

    Al finalizar se creara una nueva Clase llamada TestPila la cual implementara la clase Stack, que

    previamente creamos.

    public class TestPila {

    public static void main(String args[]) {

    Stack pila = new Stack(10);

    //Llenar la pila

    for (int i = 0; i < 10; i++) pila.push(i);

    //Retirar 5 primeros elementos de la pila

    System.out.println("Valores contenidos en la pila: ");

    for (int i = 0; i < 5; i++) System.out.println("\t " +

    pila.pop());

    }

    }

    http://www.google.com/search?hl=en&q=allinurl%3Astring+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Astack+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Astack+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Asystem+java.sun.com&btnI=I%27m%20Feeling%20Luckyhttp://www.google.com/search?hl=en&q=allinurl%3Asystem+java.sun.com&btnI=I%27m%20Feeling%20Lucky

  • Practica

    Pila esttica con menu

    import java.util.Scanner;

    public class Pilaestatica { Scanner teclado=new Scanner(System.in); int pilaa[]=new int [4]; int tope=-1; public int llenarpila() { if(tope>=pilaa.length-1){ System.out.println("La pila esta llena :/"); } else{ tope++; System.out.println("Ingrese el dato "); pilaa[tope]=teclado.nextInt(); } return tope; }//fin llenarpila public int Vaciar() { if(tope==-1){ System.out.println("La pila esta vacia :/"); } else{ System.out.println("Se elimino un elememto de la pila"); pilaa[tope]=0; tope--; } return tope; }//fin vaciar public void ver(){ for(int tope=3;tope>=0;tope--) { System.out.println("Datos de la pila"+pilaa[tope]); } }//fin metodo ver public static void main(String[] args) { Pilaestatica objeto=new Pilaestatica(); Scanner opcion=new Scanner(System.in); int seleccion; do{ System.out.println("Menu de Pila ");

  • System.out.println("1.- Insertar dato"); System.out.println("2.- Borrar dato"); System.out.println("3.- Mostrar "); System.out.println("4.- Salir"); System.out.println("Teclee la opcion deseada"); seleccion=opcion.nextInt(); switch(seleccion){ case 1: System.out.println(""); objeto.llenarpila(); System.out.println(""); break; case 2: System.out.println(""); objeto.Vaciar(); System.out.println(""); case 3: System.out.println(""); objeto.ver(); System.out.println(""); }//fin del switch seleccion } while(seleccion !=4); } }