viernes, 5 de abril de 2013

lista circular doblemente enlazada

primero que todo vamos a crear una clase de tipo libro


public class Libro {
    public String nombre,autor;
    public int codigo, copias_disponibles;
    public Libro anterior,siguiente;
    public static int contador =0;
    public Libro(String nombre, String autor,int copias)
    {
        contador++;
        this.codigo=contador;
        this.nombre=nombre;
        this.autor=autor;
        this.copias_disponibles=copias;
        this.anterior=null;
        this.siguiente=null;
    }
 
}

despues agregamos un Jform


T1 es el nombre del libro
T2 es el nombre del autor
t3 es el numero de copias disponibles
el boton ingresar base de datos se llama adicionarNuevoLibro
y tiene el siguiente codigo

Libro biblioteca = null; //este libro es la lista y  se declara antes del codigo del boton para asegurarse que la lista empezo vacia//


    private void adicionarNuevoLibroActionPerformed(java.awt.event.ActionEvent evt) {

        Libro nuevo = new Libro(t1.getText(), t2.getText(), Integer.parseInt(t3.getText()));
        
        if (biblioteca==null)
        {
            biblioteca= nuevo;
            nuevo.siguiente=biblioteca;
            nuevo.anterior=biblioteca;
        }
        else
        {
            Libro apuntador = biblioteca;
            while(apuntador.siguiente!= biblioteca)
            {
                apuntador = apuntador.siguiente;
            }
            nuevo.anterior = apuntador;
            apuntador.siguiente= nuevo;
            nuevo.siguiente=biblioteca;
           biblioteca.anterior =nuevo;
            
            
            
        }
        t1.setText("");
        t2.setText("");
        t3.setText("");
    }

el boton  que dice ver base de datos se llama mostrarBaseDatos y realiza el siguiente codigo

    private void mostrarBaseDatosActionPerformed(java.awt.event.ActionEvent evt) {
        Libro apuntador3 = biblioteca;
        
        while (apuntador3.siguiente!=biblioteca)
        {
            jTextArea1.setText(jTextArea1.getText()+"Autor: "+apuntador3.autor+"Libro: "+apuntador3.nombre+"\n");
            apuntador3=apuntador3.siguiente;
        }
                jTextArea1.setText(jTextArea1.getText()+"Autor: "+apuntador3.autor+"Libro: "+apuntador3.nombre+"\n");

    }




No hay comentarios:

Publicar un comentario