COLAS CON LISTAS ENLAZADAS

Una Cola es una estructura de datos, que almacena elementos de una lista y se puede acceder a estos por uno de los dos extremos. La inserción de elementos se realiza al final de la lista y se suprime por el frente o la parte inicial. Es decir los elementos se eliminan en el orden que se insertaron. Por lo cual una cola es de tipo FIFO (first-in, first-out, primero en entrar primero en salir). Tenemos un claro ejemplo al momento de retirar dinero, el primer cliente en ser atendido es el primero en salir.
Las operaciones básicas de una cola son:
  • Crear Cola: Inicializa la cola como vacía 
  • Insertar: Añade un elemento por el final de la cola. 
  • Quitar: Retira o extrae el elemento por el frente de la cola.
  • Frente: Obtiene el elemento que está al frente de la cola. 
  • Tamaño de la cola: Número de elementos que tienen la cola.
  • Buscar Elemento: Busca un elemento de la Cola.
Se utilizara el mismo nodo de las listas enlazadas.
Creacion del Nodo:

package Entidades;
    public class NodoSimple {
    public int info;
    public NodoSimple sgte;
    public NodoSimple(int info){
        this.info = info;
        this.sgte = null;
    }

    public int getInfo() {
        return info;
    }

    public void setInfo(int info) {
        this.info = info;
    }

    public NodoSimple getSgte() {
        return sgte;
    }

    public void setSgte(NodoSimple sgte) {
        this.sgte = sgte;
    }
Operaciones Con Colas
package Controlador;

import Entidades.NodoSimple;
import javax.swing.JOptionPane;


public class ColaSimple {
    private NodoSimple primero;
    private NodoSimple ultimo;
    public ColaSimple(){
        primero = null;
        ultimo  = null;
    }
    public boolean estaVacia(){
        if(primero == null){
            return true;
        }
        else{
            return false;
        }
     }
    public ColaSimple insertar(int info){//Se inserta al final
        NodoSimple nuevo = new NodoSimple(info);
        if(estaVacia()){
            primero = nuevo;
            ultimo = nuevo;
        }
        else{
            ultimo.sgte = nuevo;
            ultimo = nuevo;
        }  
        return this;
    }
    public ColaSimple desEncolar()
    {
        if(estaVacia()){
            JOptionPane.showMessageDialog(null, "Cola vacia");
        
        }else{
            primero = primero.sgte;      
        }
        return this;
    }
    public int tamanio(){
        int total = 0;
        for(NodoSimple indice = primero; indice != null; indice = indice.sgte){
            total++;
        }
        return total;   
    }
    public String mostrarCola(){
        String cadena= "";
        for(NodoSimple indice = primero; indice!=null; indice = indice.sgte){
            cadena += indice.info+"->";
        }
        return cadena;   
    }
    public NodoSimple buscar(int valor){
        for(NodoSimple indice = primero; indice!=null; indice = indice.sgte){
            if(indice.info == valor){
                return indice;          
            }
        }
        return null;
    }
}
Metodo main
package colas;

import Controlador.ColaSimple;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class Colas {

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
       ColaSimple col = new ColaSimple();
       int opc = 0,n=0;
       do{
           opc = Integer.parseInt(JOptionPane.showInputDialog("[1]Insertar"+"\n"+"[2] Visualizar"+"\n"+"[3]Eliminar"+"\n"+
                   "[4]Numero de Nodos"+"\n"+"[5]Buscar"+"\n"+"[6]Salir"));
       switch(opc){
           case 1:
               n = Integer.parseInt(JOptionPane.showInputDialog("Ingresar numero"));
               col.insertar(n);
               break;
           case 2:
               JOptionPane.showMessageDialog(null, col.mostrarCola());
               break;
           case 3:
               col.desEncolar();
               break;
           case 4:
               JOptionPane.showMessageDialog(null,col.tamanio());
               break;
           case 5:
               n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero a Busacar"));
               JOptionPane.showMessageDialog(null,"Encontrado "+col.buscar(n).info);
               break;           
       }
       }while(opc!=6);
    }  
}
Ejercicio: Realizar las operaciones con Colas en un Jframe.

No hay comentarios.:

Publicar un comentario