Una cola es una estructura de datos que permite ingresar los datos en nodos, estructurados en forma de una cola.
Nodo.java
Cola.java
Main.java
Salida:
Como se observa en la figura, el primer nodo en entrar es el primero en salir (FIFO: First In First Out)
Para implementarlo en Java, se crea una clase Cola y una clase Nodo, en donde nodo tiene un Nodo siguiente y un Objeto dato. La clase Cola tiene base(Nodo) = ultimo y cima(Nodo) = primero, y los métodos: push(insertar al final), pop(sacar primero) y peek(mostar primero).
Insertar a la cola:
- Se crea un nuevo nodo con el dato.
- Si primero esta vacío entonces primero y último es igual nuevo nodo y continuar con paso 4.
- Si la cola no esta vacía entonces el siguiente del último es igual al nuevo nodo y nuevo último es igual al nuevo nodo.
- Fin.
Sacar primero:
- Nodo auxiliar es igual a primero.
- Primero es igual al siguiente del primero.
- Retornar primero.
- Fin.
Mostar primero
- Retornar primero.
- Fin.
Nodo.java
/** * * @author robertoarmas */ public class Nodo{ private Object dato; private Nodo siguiente; public Nodo(Object dato){ this.dato = dato; this.siguiente = null; } public Object getDato() { return dato; } public void setDato(Object dato) { this.dato = dato; } public Nodo getSiguiente() { return siguiente; } public void setSiguiente(Nodo siguiente) { this.siguiente = siguiente; } }
Cola.java
/** * * @author robertoarmas */ public class Cola{ private Nodo cima; private Nodo base; public Cola(){ this.cima = null; } public void push(Object dato){ Nodo nuevo = new Nodo(dato); if(this.cima == null){ this.cima = this.base = nuevo; return; } this.base.setSiguiente(nuevo); this.base = nuevo; } public Object peek(){ return this.cima.getDato(); } public Object pop(){ Nodo aux = this.cima; this.cima = aux.getSiguiente(); return aux.getDato(); } public void print(){ Nodo aux = this.cima; while(aux != null){ System.out.println(aux.getDato()); aux = aux.getSiguiente(); } } }
Main.java
/** * * @author robertoarmas */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Cola c = new Cola(); c.push("Primero en entrar Primero en salir"); c.push("Otro dato despues"); c.push("ultimo dato"); c.print(); System.out.println("+++++++++++++++++++++++++"); System.out.println("Mostrar cima:" + c.peek()); System.out.println("+++++++++++++++++++++++++"); System.out.println("Sacar cima:" + c.pop()); System.out.println("Nueva cima:" + c.peek()); System.out.println("+++++++++++++++++++++++++"); System.out.println("Sacar:" + c.pop()); System.out.println("--------------------------"); System.out.println("Imprimir cola"); c.print(); } }
Salida:
Primero en entrar Primero en salir Otro dato despues ultimo dato +++++++++++++++++++++++++ Mostrar cima:Primero en entrar Primero en salir +++++++++++++++++++++++++ Sacar cima:Primero en entrar Primero en salir Nueva cima:Otro dato despues +++++++++++++++++++++++++ Sacar:Otro dato despues -------------------------- Imprimir cola ultimo datoDescargar el proyecto en GitHub
No hay comentarios:
Publicar un comentario