martes, 13 de mayo de 2014

Pilas y Colas



PILA



En la clase, aprendí sobre lo que era una pila, es una regla que se aplica a las estructuras de datos lineales, restringiendo sus operaciones a LIFO (Last In First Out ) ultimo elemento almacenado,  primero en ser procesado.

Utilidades: Es utilizado cuando se quiere invertir, retroceder en un proceso donde quedan tareas pendientes por completar.

Aplicaciones:  Llamadas a subprogramas, Evaluación de expresiones aritméticas, entre otras.
 Operaciones: Se dividen en dos grupos.
  Principales: operaciones como poner, quitar.
  Auxiliares: operaciones como cima,vacía,llena.

Implementacion de Pila.

1. Arreglos: Para realizar la implementacion de una pila por medio de arreglos es necesario definir tres variables las cuales son el vector de clase T (Genérico) y dos variables de clase int las cuales son el máximo y  tope. Se puede realizar operaciones como, poner, quitar, cima, vacía, llena. A continuación la clase PilaVector.

public class Pila <T>{
private T v[];
private int tope, max;
public Pila(){
max = 100;
v = (T[]) new Object[max];
tope = -1;
}
public Pila(int max){
this.max = max;
v = (T[]) new Object[max];
tope = -1;
}
public boolean vacia(){
return tope == -1;
}
public boolean llena(){
return tope == max-1;
}
public void poner(T dato){
if(!llena())
v[++tope] = dato;
else
System.out.println("La Pila Esta Llena");
}
public T quitar(){
T dato = null;
if(!vacia())
dato = v[tope--];
else
System.out.println("La Pila Esta Vacía");
return dato;
}
public T cima(){
if(!vacia())
return v[tope];
else
return null;
}


2. Nodos: Para la implementacion con Nodos se pueden realizar los siguientes métodos.

poner: tope = new Nodo(dato,tope);
quitar: dato = tope.getDato();
  tope= tope.getSig();
cima: dato=tope.getDato();
vacia: tope==null;


CLASE PilaVector y PilaNodo


Class PilaVector <T>
Poner {tope ++;
v[tope]= dato;
Quitar{ dato = v[tope];
        tope--;
Cima { dato =v[tope];
Vacia{tope ==-1;
Llena{tope=max -1;






Class PilaNodo
Poner {tope =new Nodo(dato,tope);
Quitar{ dato = tope.getDato();
        tope =tope.getSig();
Cima { dato =tope.getDato();
Vacia{tope ==null;












Apreciaciones importantes y reflexión: 

Aprendimos en la clase vista lo forma correcta de hacer que un vector se comporte como una pila, y resulta la clase mas funcional porque sirve para cualquier tipo de dato que se quiera guardar.


No hay comentarios:

Publicar un comentario