Documento6

download Documento6

If you can't read please download the document

Transcript of Documento6

1. Creacin de una pila bsica en Java octubre 15th, 2011 Publicado en Java Publicar un comentario Al aprender a trabajar con arrays, siempre suelen mencionarse las pilas. 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. La estructura bsica de una pila es la siguiente: Mediante un array conseguiremos construir nuestra pila de datos en Java. Para eso creamos la siguiente clase: 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--]; } } 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 2. 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). Ahora veamos cmo utilizar sta clase: public class Test { public static void main(String args[]) { //System.out.println("This is a test!"); 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()); } } Primero se crea instancia la clase Stack y mediante el constructor se inicializa una pila que puede contener hasta 10 valores. Luego mediante la sentencia for() se introducen elementos en la pila insertndolos usando el mtodo push().