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