|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Desarrollo Web / Ayuda con JS
|
en: 29 Abril 2019, 01:46 am
|
Alguien me puede explicar este código, es de javascript class Node{ constructor(val){ this.val = val; this.next = null; } } class SinglyLinkedList{ constructor(){ this.head = null; this.tail = null; this.length = 0; } push(val){ var newNode = new Node(val); if(!this.head){ this.head = newNode; this.tail = this.head; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; } pop(){ if(!this.head) return undefined; var current = this.head; var newTail = current; while(current.next){ newTail = current; current = current.next; } this.tail = newTail; this.tail.next = null; this.length--; if(this.length === 0){ this.head = null; this.tail = null; } return current; } shift(){ if(!this.head) return undefined; var currentHead = this.head; this.head = currentHead.next; this.length--; if(this.length === 0){ this.tail = null; } return currentHead; } } var list = new SinglyLinkedList() list.push("HELLO") list.push("GOODBYE") list.push("!")
|
|
|
2
|
Programación / Java / Re: Como invertir lista sencilla con el uso de nodos
|
en: 22 Abril 2019, 01:14 am
|
Amigo NEBIRE no te entendi, soy nuevo con ese tema Te ubicas en el nodo final y recorres la lista hacia atrás. Acaba cuando llegas a la raíz (o un null, si no usas raíz). funcion RecorrerHaciaAtras actual = lista.ultimonodo
hacer mientras actual <> raiz // nulo mostrar actual.dato actual = actual.anterior repetir fin funcion
|
|
|
3
|
Programación / Java / Como invertir lista sencilla con el uso de nodos
|
en: 21 Abril 2019, 18:39 pm
|
Hola amigos, tengo este codigo donde utilizo un nodo ubicado en la cabecera(cab) y otro al final(fin). Quiero saber como puedo mostrar de forma inversa los datos ingresados. CODIGO: 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){ JOptionPane. showMessageDialog(null, "Elemento no existe!"); }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: package metodos; /** * * @author Ruben */ public class nodo { int codP; float precioU; nodo sig; nodo ant; public nodo (int codP, String nomP, float precioU ) { this.codP = codP; this.nomP = nomP; this.precioU = precioU; this.sig = null; this.ant=null; } }
Probador: package metodos; import javax.swing.JOptionPane; public class probador { public static void main (String args []){ int op, cod; 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: ")); nomp = JOptionPane. showInputDialog("Entre nombre 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: JOptionPane. showMessageDialog(null, "Opcion invalida!"); } }while(op!=8); } }
|
|
|
4
|
Programación / Java / Ejemplo de Matriz
|
en: 25 Febrero 2019, 04:52 am
|
Les comparto este pequeño programa con la ayuda de Tektor. Ejercicio: Se requiere una matriz que realice las siguientes operaciones -Ingresar TC(meses[1-12] ) y TF(vendedor) -Obtener la información de ventas de cada mes y vendedor -Obtener el mejor y el peor vendedor -Obtener el mejor y el peor mes de ventas -Dado un mes(COLUMNAS), obtener el mejor y el peor vendedor -Dado un vendedor(FILAS), obtener el mejor y el peor mes de ventas Incluir menú //código del menú package metodos;
import javax.swing.JOptionPane; import static metodos.miMatriz.mes; import static metodos.miMatriz.vendedor; public class menu1{ public static void main(String args[]){ int opcion; String op; do{ op= JOptionPane.showInputDialog("Menu De opciones: \n" + "1) Ingresar TC(meses[1-12] ) y TF(vendedor)\n" + "2) Obtener la informacion de ventas de cada mes y vendedor\n" + "3) Obtener el mejor y el peor vendedor \n" + "4) Obtener el mejor y el peor mes de ventas\n " + "5) Dado un mes(TC), obtener el mejor y el peor vendedor\n" + "6) Dado un vendedor(TF), obtener el mejor y el peor mes de ventas\n" + "7) EJECUTAR TODAS LAS OPCIONES(RECOMENDADA)\n " + "8) Salir\n"); try{ opcion = Integer.parseInt(op); }catch(NumberFormatException ex){ JOptionPane.showMessageDialog(null, "Error, solo se permiten numeros"); opcion=0; } switch(opcion){ case 0: break; case 1: miMatriz.llenarM(); miMatriz.mostrarM(); break; case 2: miMatriz.vectorMes(); miMatriz.vectorVendedor(); miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes); miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor); break; case 3: miMatriz.MejorVendedor(); miMatriz.PeorVendedor(); break; case 4: miMatriz.MejorVendedor(); miMatriz.PeorVendedor(); break; case 5: miMatriz.pedircolumna(); break; case 6: miMatriz.pedirfila(); break; case 7: miMatriz.llenarM(); miMatriz.mostrarM(); miMatriz.vectorMes(); miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes); miMatriz.vectorVendedor(); miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor); miMatriz.MejorVendedor(); miMatriz.PeorVendedor(); miMatriz.MejorMes(); miMatriz.PeorMes(); miMatriz.pedircolumna(); miMatriz.pedirfila(); break; default: JOptionPane.showMessageDialog(null, "Saliendo..."); } }while(opcion !=8); } }
//------------------------------------------------------------------------------------------------- //Código del programa
package metodos; import javax.swing.JOptionPane; public class miMatriz { public static int ventas[][]; public static int mes[]; public static int vendedor[]; public static int tf, tc;
public static void llenarM(){ int i, j; tc = Integer.parseInt( JOptionPane.showInputDialog( "Entre número de meses [1 - 12]:") ); tf = Integer.parseInt( JOptionPane.showInputDialog( "Entre número de vendedores: ") ); ventas = new int[tf][tc]; mes = new int[tc]; vendedor = new int[tf]; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ ventas[i][j] = Integer.parseInt(JOptionPane.showInputDialog( "Entre ventas del vendedor en ["+i+"]["+j+"]:")); } } } public static void mostrarM( ){ int i, j; String aux="Los elementos de la matriz de ventas son: \n"; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ aux += "[ "+ventas[i][j]+" ]"; } aux+="\n"; } JOptionPane.showMessageDialog(null, aux); } public static void vectorMes(){ int i, j; for(j=0;j<tc;j++){ for(i=0; i<tf; i++){ mes[j] += ventas[i][j]; } } } public static void vectorVendedor(){ int i, j; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ vendedor[i] += ventas[i][j]; } } }
public static void mostrarVec( String x, int vec[] ){ int i; String aux="< "; for(i=0; i<vec.length; i++){ if( i < (vec.length-1) ) aux += ""+vec[i]+"," + " "; else aux += ""+vec[i]+" >"; } JOptionPane.showMessageDialog(null, ""+x+"\n"+aux); } public static void MejorVendedor( ){ int pos=0, i; int may=vendedor[0]; for(i=0; i<vendedor.length; i++){ if(vendedor[i]>may){ may=vendedor[i]; pos=i; } } JOptionPane.showMessageDialog(null, "El mejor vendedor es: "+pos); } public static void PeorVendedor( ){ int pos1=0, i; int men=vendedor[0]; for(i=0; i<vendedor.length; i++){ if(vendedor[i]<men){ men=vendedor[i]; pos1=i; } } JOptionPane.showMessageDialog(null, "El peor vendedor es: "+pos1); } public static void MejorMes( ){ int pos=0, i; int may=mes[0]; for(i=0; i<mes.length; i++){ if(mes[i]>may){ may=mes[i]; pos=i; } } JOptionPane.showMessageDialog(null, "El mejor mes de ventas es: "+pos); } public static void PeorMes( ){ int pos=0, i; int men=mes[0]; for(i=0; i<mes.length; i++){ if(mes[i]<men){ men=mes[i]; pos=i; } } JOptionPane.showMessageDialog(null, "El peor mes de ventas es: "+pos); } public static void pedircolumna(){ int c=0, tc1, o; tc1= Integer.parseInt( JOptionPane.showInputDialog( "Ingrese el número de columna en la que desea buscar:") ); if(tc1>=ventas[0].length){ JOptionPane.showInputDialog("Opcion no valida"); } o = Integer.parseInt( JOptionPane.showInputDialog( "OPCIONES: \n" + "1) Hallar el mejor mes de ventas \n" + "2) Hallar el peor mes de ventas \n") ); if (o==1){ JOptionPane.showMessageDialog(null, "El mayor dato en la columna "+tc1+" es:" +Obtenermayor(tc1, ventas)); } else { if(o==2){ JOptionPane.showMessageDialog(null, "El menor dato en la columna "+tc1+" es:" +Obtenermenor(tc1, ventas)); } else{ JOptionPane.showMessageDialog(null, "Opcion no valida"); } } } public static int Obtenermayor(int mes, int ventas[][]){ int mayor= ventas[0][mes]; for(int i=1; i<ventas.length; i++){ if(ventas[i][mes]>mayor){ mayor = ventas[i][mes]; } } return mayor; } public static int Obtenermenor(int mes, int ventas[][]){ int menor= ventas[0][mes]; for(int i=1; i<ventas.length; i++){ if(ventas[i][mes]<menor){ menor = ventas[i][mes]; } } return menor; } public static void pedirfila(){ int c=0, tc1, o; tc1= Integer.parseInt( JOptionPane.showInputDialog( "Ingrese el número de fila en la que desea buscar:") ); if(tc1>=ventas[0].length){ JOptionPane.showInputDialog("Opcion no valida"); } o = Integer.parseInt( JOptionPane.showInputDialog( "OPCIONES: \n" + "1) Hallar el mejor vendedor \n" + "2) Hallar el peor vendedor \n") ); if (o==1){ JOptionPane.showMessageDialog(null, "El mayor dato en la fila "+tc1+" es:" +Obtenermayorf(tc1, ventas)); } else { if(o==2){ JOptionPane.showMessageDialog(null, "El menor dato en la fila "+tc1+" es:" +Obtenermenorf(tc1, ventas)); } else{ JOptionPane.showMessageDialog(null, "Opcion no valida"); } } } public static int Obtenermayorf(int vendedor, int ventas[][]){ int mayor= ventas[vendedor][0]; for(int i=1; i<ventas.length; i++){ if(ventas[vendedor][i]>mayor){ mayor = ventas[vendedor][i]; } } return mayor; } public static int Obtenermenorf(int vendedor, int ventas[][]){ int menor= ventas[vendedor][0]; for(int i=1; i<ventas.length; i++){ if(ventas[vendedor][i]<menor){ menor = ventas[vendedor][i]; } } return menor; } public static void main(String args[]){ llenarM(); mostrarM(); vectorMes(); mostrarVec("La información de ventas de cada mes es: ", mes); vectorVendedor(); mostrarVec("La información de ventas de cada vendor es: ", vendedor); MejorVendedor(); PeorVendedor(); MejorMes(); PeorMes(); pedircolumna(); pedirfila(); System.exit(0); } }
|
|
|
5
|
Programación / Programación C/C++ / AYUDA java matrices
|
en: 24 Febrero 2019, 18:07 pm
|
El numero de columnas y de filas las da el usuario. No se como lograr que mi programa dado una columna(ingresada por el usuario) me analice cual es el elemento mayor y menor que tiene dicha columna. Código: package metodos; import javax.swing.JOptionPane; public class miMatriz { public static int ventas[][]; public static int mes[]; public static int vendedor[]; public static int tf, tc; public static void llenarM(){ int i, j; "Entre número de meses [1 - 12]:") ); "Entre número de vendedores: ") ); ventas = new int[tf][tc]; mes = new int[tc]; vendedor = new int[tf]; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ "Entre ventas del vendedor en ["+i+"]["+j+"]:")); } } } public static void mostrarM( ){ int i, j; String aux ="Los elementos de la matriz de ventas son: \n"; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ aux += "[ "+ventas[i][j]+" ]"; } aux+="\n"; } } public static void vectorMes(){ int i, j; for(j=0;j<tc;j++){ for(i=0; i<tf; i++){ mes[j] += ventas[i][j]; } } } public static void vectorVendedor(){ int i, j; for(i=0; i<tf; i++){ for(j=0; j<tc; j++){ vendedor[i] += ventas[i][j]; } } } public static void mostrarVec ( String x, int vec [] ){ int i; for(i=0; i<vec.length; i++){ if( i < (vec.length-1) ) aux += ""+vec[i]+"," + " "; else aux += ""+vec[i]+" >"; } } public static void MejorVendedor( ){ int pos=0, i; int may=vendedor[0]; for(i=0; i<vendedor.length; i++){ if(vendedor[i]>may){ may=vendedor[i]; pos=i; } } JOptionPane. showMessageDialog(null, "El mejor vendedor es: "+pos ); } public static void PeorVendedor( ){ int pos1=0, i; int men=vendedor[0]; for(i=0; i<vendedor.length; i++){ if(vendedor[i]<men){ men=vendedor[i]; pos1=i; } } JOptionPane. showMessageDialog(null, "El peor vendedor es: "+pos1 ); } public static void MejorMes( ){ int pos=0, i; int may=mes[0]; for(i=0; i<mes.length; i++){ if(mes[i]>may){ may=mes[i]; pos=i; } } JOptionPane. showMessageDialog(null, "El mejor mes de ventas es: "+pos ); } public static void PeorMes( ){ int pos=0, i; int men=mes[0]; for(i=0; i<mes.length; i++){ if(mes[i]<men){ men=mes[i]; pos=i; } } JOptionPane. showMessageDialog(null, "El peor mes de ventas es: "+pos ); } public static void main (String args []){ llenarM(); mostrarM(); vectorMes(); mostrarVec("La información de ventas de cada mes es: ", mes); vectorVendedor(); mostrarVec("La información de ventas de cada vendor es: ", vendedor); MejorVendedor(); PeorVendedor(); MejorMes(); PeorMes(); pedirColumna(); } }
MOD: Etiqueta GeSHi.
|
|
|
|
|
|
|