CLASE COLA
public class Cola {
Nodo inicio;
Nodo fin;
public Cola() {
}
public Cola(Nodo inicio, Nodo fin) {
this.inicio = inicio;
this.fin = fin;
}
public Nodo getInicio() {
return inicio;
}
public void setInicio(Nodo inicio) {
this.inicio = inicio;
}
public Nodo getFin() {
return fin;
}
public void setFin(Nodo fin) {
this.fin = fin;
}
//Método COLA VACIA
public boolean esVacia(){
return inicio == null;
}
//Método Push (ENCOLAR)
public void encolar(int valor){
Nodo nuevo = new Nodo();
nuevo.setDato(valor);
if (esVacia()) {
inicio = nuevo;
fin = nuevo; }
else{
fin.setSiguiente(nuevo);
fin = nuevo;
}
}
//Método Pop (DESENCOLAR)
public int desencolar () {
if (!esVacia())
{ int dato = inicio.getDato();
if (inicio == fin){
inicio = null;
fin = null;
} else {
inicio = inicio.getSiguiente();
}
return dato;
} else {
return Integer.MAX_VALUE;
}
}
CLASE NODO
public class Nodo {
int dato;
Nodo siguiente;
public Nodo() {
}
public Nodo(int dato, Nodo siguiente) {
this.dato = dato;
this.siguiente = siguiente;
}
public int getDato() {
return dato;
}
public void setDato(int dato) {
this.dato = dato;
}
public Nodo getSiguiente() {
return siguiente;
}
public void setSiguiente(Nodo siguiente) {
this.siguiente = siguiente;
}
@Override
public String toString() {
return "Nodo{" + "dato=" + dato + ", siguiente=" + siguiente + '}';
}
CLASE PILA
public class Pila {
Nodo fin;
public Pila() {
}
public Pila(Nodo fin) {
this.fin = fin;
}
public Nodo getFin() {
return fin;
}
public void setFin(Nodo fin) {
this.fin = fin;
}
//Método PILA VACIA
public boolean esVacia(){
return fin == null;
}
//Método Push (APILAR)
public void apilar(int valor){
Nodo nuevo = new Nodo();
nuevo.setDato(valor);
if (esVacia()) {
fin = nuevo;
}
else{
nuevo.setSiguiente(fin);
fin = nuevo;
}
}
//Método Pop (DESAPILAR)
public int desapilar () {
if (!esVacia()) {
int dato = fin.getDato();
fin = fin.getSiguiente();
return dato;
}
else
{ return Integer.MAX_VALUE;
}
}
}