Páginas

sábado, 16 de diciembre de 2017

Crear una cola donde se pueda agregar, eliminar y mostra

Nodo Generico

public class Nodo<T> {

    private T info;
    private Nodo siguiente;

    public Nodo(T info) {
        this.info = info;
        siguiente = null;
    }

    public Nodo(T info, Nodo<T> siguiente) {
        this.info = info;
        this.siguiente = siguiente;
    }

    public T getInfo() {
        return info;
    }

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

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo<T> siguiente) {
        this.siguiente = siguiente;
    }
}

Clase

Cola Generica

public class Cola<T> {

    private Nodo<T> primero;
    private Nodo<T> ultimo;

    public Cola() {
        primero = null;
        ultimo = null;
    }

    public void encolar(T x) {
        Nodo<T> nuevo = new Nodo(x, null);
        if (primero == null) {
            primero = nuevo;
        } else {
            ultimo.setSiguiente(nuevo);
        }
        ultimo = nuevo;
    }

    public T desencolar() {
        T x;
        Nodo<T> temp;
        x = primero.getInfo();
        temp = primero;
        primero = primero.getSiguiente();
        temp = null;
        if (primero == null) {
            ultimo = null;
        }
        return x;
    }

    public void mostrar() {
        Nodo<T> p = primero;
        while (p != null) {
            System.out.println(p.getInfo());
            p = p.getSiguiente();
        }
    }

    public boolean esVacia() {
        if (primero == null) {
            return true;
        } else {
            return false;
        }
    }
}

Programa

que usa la cola:

import java.util.Scanner;

public class ProyectoColasGenericas {

    public static void main(String[] args) {
        int op, x;
        Scanner entrada = new Scanner(System.in);
        Cola<Integer> cola = new Cola();

        do {
            System.out.println("Menu Colas");
            System.out.println("[1] Encolar");
            System.out.println("[2] Desencolar");
            System.out.println("[3] Mostrar");
            System.out.println("[4] Salir");
            System.out.print("Ingrese opcion : ");
            op = entrada.nextInt();
            switch (op) {
                case 1:
                    System.out.print(" Ingrese numero : ");
                    x = entrada.nextInt();
                    cola.encolar(x);
                    break;
                case 2:
                    if (!cola.esVacia()) {
                        x = cola.desencolar();
                        System.out.println("Dato desencolado : " + x);
                    } else {
                        System.out.println("Lac cola esta vacia");
                    }
                    break;
                case 3:
                    System.out.println(" Datos de la cola");
                    cola.mostrar();
                    break;
            }
        } while (op != 4);
    }
}

2 comentarios: