![]() |
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;
}
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
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;
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