miércoles, 8 de febrero de 2017

EJEMPLO DE FRUTAS USANDO LISTAS ENLAZADA,PILAS Y COLAS

A continuación se mostrara un código ,que se trata crear una clase Nodo fruta la cual tendrá como métodos de procedimiento insertar frutas,sacar por Pila y Colas,imprimir y eliminar usando un interfaz. 

  •  Empezamos creando nuestra clase NodoFruta

public class NodoFruta {

    private Object fruta;
    private float precio;
    private NodoFruta nodfrut;

    public NodoFruta(Object fruta, float precio) {
        this.fruta = fruta;
        this.precio = precio;
        this.nodfrut = null;
    }

    public Object getFruta() {
        return fruta;
    }

    public void setFruta(Object fruta) {
        this.fruta = fruta;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public NodoFruta getNodfrut() {
        return nodfrut;
    }

    public void setNodfrut(NodoFruta nodfrut) {
        this.nodfrut = nodfrut;
    }

    public String toString() {

        return String.valueOf(this.fruta + "\t\t" + this.precio);
    }

}


  • Nuestra clase OperacionNodo donde se creara los métodos ya explicados


import javax.swing.JOptionPane;
import jdk.nashorn.internal.objects.NativeString;

public class OperacionNodo {

    NodoFruta inicio;
    NodoFruta fin;

    public OperacionNodo() {
        this.fin = null;
    }

// EL  METODO DE INGRESO ES IGUAL PARA AMBOS (PILAS Y COLAS).
    public void ingresarNodo(Object fruta, float precio) {

        NodoFruta nodonuevo = new NodoFruta(NativeString.toUpperCase(fruta), precio);
        if (fin == null) {
            inicio = fin = nodonuevo;
        } else {
            nodonuevo.setNodfrut(fin);
            fin = nodonuevo;
        }
    }

//METODO SACAR POR COLA
    public void sacarNodoCola() {
        NodoFruta temp = fin;
        while (temp != null) {
            if (temp.getNodfrut() == inicio) {
                inicio = temp;
                inicio.setNodfrut(null);
                break;
            }
            temp = temp.getNodfrut();
        }
    }

//METODO SACAR POR PILA
    public void sacarNodoPila() {
        fin = fin.getNodfrut();

    }

//ELIMINAR POR FRUTA.
    public void eliminar(Object nombre) {
        NodoFruta temp = fin, temp2 = fin;
        if (estaContenido(NativeString.toUpperCase(nombre))) {
            while (temp != null) {
                if (temp.getFruta().equals(NativeString.toUpperCase(nombre))) {
                    if (fin.getFruta().equals(NativeString.toUpperCase(nombre))) {
                        fin = temp2.getNodfrut();
                        break;
                    } else {
                        temp2.setNodfrut(temp.getNodfrut());
                        break;
                    }

                }
                temp2 = temp;
                temp = temp.getNodfrut();
            }
        }
    }

//METODO QUE BUSCA EN EL CONTENIDO SI ESTA O NO
    boolean estaContenido(Object fruta) {
        boolean band = false;
        NodoFruta temp = fin;
        while (temp != null) {
            if (temp.getFruta().equals(fruta)) {
                band = true;
                break;
            }
            temp = temp.getNodfrut();
        }
        JOptionPane.showMessageDialog(null, "No se encuentra en el contenido...!");

        return band;
    }

//AL IGUAL QUE EL METODO DE INGRESO, ES LO MISMO EL METO PARA MOSTRAR.    
    public String mostrar() {
        NodoFruta temp = fin;
        String cadena = "";
        while (temp != null) {
            cadena += temp.toString() + "\n";
            //System.out.println(temp.toString() + "");
            temp = temp.getNodfrut();
        }
        return cadena;
    }

}


  • Mi clase TestFruta


public class TestFruta {

    public static void main(String[] args) {
        OperacionNodo oper = new OperacionNodo();
        oper.ingresarNodo("Fresa", (float) 12.3);
        oper.ingresarNodo("Cereza", 9);
        oper.ingresarNodo("Platanos", 13);
        oper.ingresarNodo("Mora", (float) 18.30);
        oper.mostrar();
        System.out.println("\n\tSACANDO FRUTA");
        oper.sacarNodoCola();
        oper.mostrar();
        System.out.println("\n\tNUEVA  FRUTA");
        oper.ingresarNodo("Papaya", (float) 11.30);
        oper.mostrar();
        System.out.println("\n\tSACANDO FRUTA");
        oper.sacarNodoPila();
        oper.mostrar();
        oper.ingresarNodo("Melones", 9);
        oper.ingresarNodo("Uva", 13);
        System.out.println("\n\tNUEVA  FRUTA");
        oper.mostrar();
        System.out.println("\n\tELIMINAR");
        oper.eliminar("mora");//SI ESCRIBO EL NOMBRE DE LA FRUTA 
        oper.mostrar();   //EN MAYUSCULA O MINUSCULA QUE LO CONVIERTA A MAYUSCULA
    }

}


  • Ahora nuestra clase Frame donde crearemos nuestra interfaz


public class FrameFrutas extends javax.swing.JFrame {
OperacionNodo oper=new OperacionNodo();
   
    public FrameFrutas() {
        initComponents();
        setVisible(true);
        setTitle("FRUTAS");
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
    }
 private void bcolaActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        oper.sacarNodoCola();
        tamostrar.setText(oper.mostrar());
    }                                     

    private void bingresarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
       
        oper.ingresarNodo(tffruta.getText(), Float.parseFloat(tfprecio.getText()));
        tffruta.setText("");
        tfprecio.setText("");
        tffruta.requestFocus();
        
    }                                         

    private void bimprimirActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
    tamostrar.setText(oper.mostrar());
        
    }                                         

    private void bpilaActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        oper.sacarNodoPila();
        tamostrar.setText(oper.mostrar());
    }                                     

    private void beliminarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        oper.eliminar(tffruta.getText());
        tffruta.setText("");
        tamostrar.setText(oper.mostrar());
    } 
   
   public static void main(String args[]) {
   
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrameFrutas().setVisible(true);
            }
        });
    }

    private javax.swing.JButton bcola;
    private javax.swing.JButton beliminar;
    private javax.swing.JButton bimprimir;
    private javax.swing.JButton bingresar;
    private javax.swing.JButton bpila;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea tamostrar;
    private javax.swing.JTextField tffruta;
    private javax.swing.JTextField tfprecio;

Esta fue la interfaz que hice

No hay comentarios:

Publicar un comentario