Pilas con listas ligadas
Una pila es una estructura de datos en la cual el acceso está limitado al elemento más recientemente insertado y solamente puede crecer y decrecer por uno de sus extremos.
Las pilas sedenominan también estructuras LIFO (Last-In-First-Out), porque su característica principal es que el último elemento en llegar es el primero en salir.
En todo momento, el único elemento visible de laestructura es el último que se colocó.
Se define el tope de la pila como el punto donde se encuentra dicho elemento.
En una pila, las tres operaciones naturales de insertar, eliminar y obtener eldato, se renombran por push, pop e info.
Interfaz
Como existen diferentes formas de implementar una Pila ( vectores, listas enlazadas ) la primera parte del diseño está constituida por ladeclaración de una interfaz, con las operaciones básicas.
interface Pila
{
void push(Object x);
void pop( ) throws Exception;
Object info( ) throws Exception;
boolean esVacia( );void vaciar( );
}
Métodos
push( x ) --> Inserta x
pop( ) --> Elimina el último elemento insertado
info( ) --> Retorna el último elemento insertadoesVacia( ) --> Retorna true si no existen elementos ; false en caso contrario
vaciar( ) --> Elimina todos los elementos
Implementación con Lista Enlazada
class Nodo
{
public Objectdato;
public Nodo siguiente;
public Nodo(Object elemento, Nodo sgte)
{
this.dato = elemento;
this.siguiente = sgte;
}
public Nodo(Object elemento){
this(elemento,null);
}
}
class PilaLi implements Pila
{
private Nodo tope;
public PilaLi( )
{
tope = null;
}
public boolean esVacia( )
{return tope == null;
}
public void vaciar( )
{
tope = null;
}
public void push(Object x)
{
tope = new Nodo(x,tope);
}
public...
Regístrate para leer el documento completo.