/* AUTOR: d3n3k4 (Dnk!)
* WEB: http://d3n3k4.blogspot.com/
* FECHA: 05/DIC/2010
* DESCRIPCION:
* - Clase lista dinamica de tipo PILA.
* NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
* mantenga los creditos y comentarios del autor.
*/
public class dinamicoPila {
class Nodo {
int jData;
Nodo sig;
}
private Nodo raiz;
dinamicoPila() {
raiz = null;
}
/*
* Metodo para insertar un elemento en la lista.
*/
public void insertar(int jDataEntrada) {
Nodo aux;
aux = new Nodo();
aux.jData = jDataEntrada;
if (raiz == null) {
aux.sig = null;
raiz = aux;
} else {
aux.sig = raiz;
raiz = aux;
}
}
/*
* Como esta clase es una "Pila". Ultimo en entrar, primero en salir", en este
* metodo se extrae el ultimo elemento que ha entrado en la lista, una vez extraido,
* sera borrado de la lista. Si la lista vacia devuelve el MAX_VALUE de int.
*/
public int extraer() {
if (raiz != null) {
int dData = raiz.jData;
raiz = raiz.sig;
return dData;
} else
return Integer.MAX_VALUE;
}
/*
* Aqui podremos consultar el ultimo elemento de la lista que ha entrado. Sin
* que sea borrado ningun elemento.
* Si la lista vacia devuelve el MAX_VALUE de int.
*/
public int consultarUltimo() {
if (raiz != null) {
return raiz.jData;
} else
return Integer.MAX_VALUE;
}
/*
* Aqui podremos consultar toda la lista al completo. Sin que sea borrado
* ningun elemento.
* Si la lista vacia devuelve el MAX_VALUE de int.
*/
public int[] consultar() {
Nodo aux = raiz;
int vSalida[] = new int[lenLista()], vIndex = 0;
while (aux != null) {
vSalida[vIndex] = aux.jData;
aux = aux.sig;
vIndex++;
}
return vSalida;
}
/*
* Metodo para consultar la longitud de la lista. Si la lista esta vacia
* retornara 0.
*/
public int lenLista() {
Nodo aux = raiz;
int len = 0;
while (aux != null) {
len++;
aux = aux.sig;
}
return len;
}
/*
* Metodo para comprobar si la lista esta vacia.
*/
public boolean empty() {
if (raiz == null) return true;
else return false;
}
}