Quiero saber como puedo mostrar de forma inversa los datos ingresados.
CODIGO:
Código
package metodos; import javax.swing.JOptionPane; public class lista { nodo cab; nodo fin; lista(){ cab = fin = null; } nodo getNodo(int cod){ nodo p; if( cab == null ) //lista vacia return null; else{ //la lista tiene al menos un nodo p=cab; while(p!=null){ if(p.codP == cod) return p; else p=p.sig; } return null; } } //creamos el metodo get final nodo getNodoEnd(int cod){ nodo p; if( fin == null ) //lista vacia return null; else{ //la lista tiene al menos un nodo p=fin; while(p!=null){ if(p.codP == cod) return p; else p=p.ant; } return null; } } boolean getVacia(){ return cab==null?true:false; } int getLonglista(){ if(getVacia()) return 0; else{ int con=0; nodo p=cab; while(p!=null){ con++; p=p.sig; } return con; } } void setAddFinal(nodo info){ nodo p, q; if( cab == null ){ cab = info; "Primer elemento agregado!!, la lista tiene 1 elemento."); }else{ q = getNodo(info.codP); if(q!=null) "El código del producto ya esta registrado en la lista!!!"); else{ p=cab; while(p.sig!=null){ p=p.sig; } p.sig = info; int tam = getLonglista(); "Nuevo elemento agregado al final de la lista,"+ " existen: "+tam+" elementos."); } } } void getMostrarT(){ if(getVacia()) else{ nodo p=cab; int con=0; while(p!=null){ aux = "La información en la posición "+con+" es:\n"; aux += "Código Producto: "+p.codP+"\n"; aux += "Nombre Producto: "+p.nomP+"\n"; aux += "Precio Unitario: "+p.precioU+"\n"; con++; p=p.sig; } } } void setElimN( int cod ){ nodo p = getNodo(cod); if( cab == null ){ "Lista vacía..."); }else{ if(p==null){ }else{ nodo q = null; if((cab.sig==null)&&( p == cab )){ cab = p = null; "Elemento eliminado. Lista vacia!!!"); } else if((cab.sig != null)&&(p == cab)){ cab = p.sig; p.sig = null; p = null; "Elemento eliminado. Eliminado en la cabecera!!!"); } else if( (p.sig != null)&&(p!=cab) ){ q = cab; while( q.sig != p ) q = q.sig; q.sig = p.sig; p.sig = null; p = null; "Elemento eliminado!!!"); } else{ q = cab; while( q.sig != p ) q = q.sig; q.sig = null; p = null; "Elemento eliminado de la ultima posicion!!!"); } } } } }
Clase nodo:
Código
package metodos; /** * * @author Ruben */ public class nodo { int codP; String nomP; float precioU; nodo sig; nodo ant; this.codP = codP; this.nomP = nomP; this.precioU = precioU; this.sig = null; this.ant=null; } }
Probador:
Código
package metodos; import javax.swing.JOptionPane; public class probador { int op, cod; String nomp; float precio; lista productos = new lista(); nodo aux=null; do{ "Menu Principal \n"+ "1. Agregar Producto \n"+ "2. Mostrar Productos \n"+ "3. Eliminar Producto \n"+ "4. Eliminar elemento de una posicion \n"+ "5. Eliminar elemntos repetidos \n"+ "6. Invertir lista \n"+ "7. Rotar elementos \n"+ "8. Salir \n"+ "Entre su opción: " )); switch(op){ case 1: "Entre código del producto: ")); "Entre precio unitario: ")); aux = new nodo(cod,nomp,precio); productos.setAddFinal(aux); break; case 2: productos.getMostrarT(); break; case 3: "Entre código del producto: ")); productos.setElimN(cod); break; case 4: "Ingrese elemento a borrar: ")); productos.setElimN(cod); break; case 5: break; case 6: break; case 7: break; case 8: break; default: } }while(op!=8); } }