COLAS
Las colas son estructuras de datos lineales, son muy parecidas a las pilas y a las listas , quienes les dan propiedades a esta estructura de datos.
En las colas se accede por uno de los dos extremos de la lista y los elementos se insertan por el extremo final, y se suprimen por el otro extremo, llamado frente. Estas estructuras se utilizan para almacenar elementos en su orden de aparición.
- Cola Simple: Estructura donde los elementos salen en el mismo orden en el que llegan.
- Cola Doble: Estructura en la que los elementos se pueden añadir o quitar por cualquier extremo de la cola.
- Cola Circular: Representación de una cola simple en un arreglo.
- Cola de prioridades: Estructura en la cual los elementos se insertan en cualquier posición de la cola y se mueven solo por el frente.
Para poder entender las colas veremos sus métodos y clases para poder aplicar esta estructura de datos
1) NODO DE UNA COLA:
class Nodo {
private int informacion;
Nodo siguiente;
}
2) ClASE COLA :
private Nodo inicio;
private Nodo fin;
Cola() {
inicio=null;
fin=null;
}
3) MÉTODO DE VERIFICAR SI LA COLA ESTA LLENA:
public boolean vacia (){
if (inicio == null)
return true;
else
return false;
}
4) MÉTODO INSERTAR ELEMENTO EN COLA: public void insertarElemento (int informacion)
{
Nodo nuevo;
nuevo = new Nodo ();
nuevo.informacion = informacion;
nuevo.siguiente = null;
if (vacia ()) {
inicio = nuevo;
fin = nuevo;
} else {
fin.sig = nuevo;
fin = nuevo;
}
}
5) MÉTODO PARA EXTRAER UN ELEMENTO :
public int extraer ()
{
if (!vacia ())
{
int informacion = inicio.informacion;
if (inicio == fin){
inicio = null;
fin = null;
} else {
inicio = inicio.siguiente;
}
return informacion;
} else
return Integer.MAX_VALUE;
}
6) MÉTODO PARA IMPRIMIR ELEMENTOS DE UNA COLA :
public void imprimir() {
Nodo aux=inicio;
System.out.println("Los elementos de la cola son:");
while (aux!=null) {
System.out.print(aux.informacion+"-");
aux=aux.siguiente;
}
System.out.println();
}
EJERCICIO PRACTICO APLICANDO LOS MÉTODOS EXPLICADOS
CLASE COLA:
public class Cola {
private Nodo inicio;
private Nodo fin;
public Cola() {
inicio = null;
fin = null;
}
public boolean vacia() {
if (inicio == null) {
return true;
} else {
return false;
}
}
public void insertarElemento(int informacion) {
Nodo nuevo;
nuevo = new Nodo();
nuevo.informacion = informacion;
nuevo.siguiente = null;
if (vacia()) {
inicio = nuevo;
fin = nuevo;
} else {
fin.siguiente = nuevo;
fin = nuevo;
}
}
public int extraer() {
if (!vacia()) {
int informacion = inicio.informacion;
if (inicio == fin) {
inicio = null;
fin = null;
} else {
inicio = inicio.siguiente;
}
return informacion;
} else {
return Integer.MAX_VALUE;
}
}
public void imprimir() {
Nodo aux = inicio;
System.out.println("Los elementos de la cola son:");
while (aux != null) {
System.out.print("/"+aux.informacion + "/");
aux = aux.siguiente;
}
System.out.println();
}
}
CLASE NODO :
public class Nodo {
int informacion;
Nodo siguiente;
public Nodo() {
}
public Nodo(int informacion, Nodo siguiente) {
this.informacion = informacion;
this.siguiente = siguiente;
}
public int getInformacion() {
return informacion;
}
public void setInformacion(int informacion) {
this.informacion = informacion;
}
public Nodo getSiguiente() {
return siguiente;
}
public void setSiguiente(Nodo siguiente) {
this.siguiente = siguiente;
}
@Override
public String toString() {
return "Nodo{" + "informacion=" + informacion + ", siguiente=" + siguiente + '}';
}
}
CLASE PRINCIPAL
public class Principal {
public static void main(String[] ar) {
Cola cola1=new Cola();
cola1.insertarElemento(14);
cola1.insertarElemento(12);
cola1.insertarElemento(5);
cola1.insertarElemento(45);
cola1.insertarElemento(3);
cola1.insertarElemento(10);
cola1.imprimir();
System.out.println("Extraemos uno de la cola:"+cola1.extraer());
cola1.imprimir();
}
}


No hay comentarios:
Publicar un comentario