elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 26
41  Programación / Java / Re: Crear String a partir de una Lista de caracteres son concatenar(problema) en: 24 Junio 2009, 17:38 pm
Un arreglo no es una lista enlazada!
42  Programación / Java / Re: Ejercicio Avanzado usando Java (POO) en: 16 Mayo 2009, 02:07 am
jajaj dificil? Pobres los que programan compiladores, navegadores, mapas...
43  Programación / Java / Re: Arbol AVL en: 12 Mayo 2009, 05:05 am
Para borrar nodos yo hice esto (siempre con arboles generales, binarios o no):

Código
  1. ListaDeHijos = nodo.obtenerHijos();
  2. padreDeNodo=nodo.obtenerPadre();
  3. posicionDeNodo=nodo.obtenerPosicionEnLista();
  4. //borrar el nodo
  5. nodo.establecerHijos(null);
  6. nodo.establecerPadre(null);
  7. //opcion1: un hijo (el primero) toma el lugar del padre
  8. if (listaDeHijos.isEmpty()==false)
  9. {
  10. nuevoHijo=listaDeHijos.obtenerPrimero();
  11. listaDeHijos.eliminarNodo(listaDeHijos.obtenerPrimero());
  12. nuevoHijo.establecerHijos(listaDeHijos);
  13. Para cada nodo de listaDeHijos hacer
  14.    nodo.establecerPadre(nuevoHijo);
  15. padreDeNodo.obtenerHijos().insertarNodoEnPosicion(posicionDeNodo,nuevoHijo);
  16. //opcion2: todos los hijos pasan a ser hijos del padre del eliminado
  17. /*
  18. * padreDeNodo.obtenerHijos().concatenarListas(listaDeHijos); //agrega los nodos hijos a los del padre del eliminado
  19. * Para cada nodo de listaDeHijos hacer
  20. *   nodo.establecerPadre(nuevoHijo);
  21. */
  22.  
  23.  

Para visualizarlo existe un algoritmo muy conocido llamado recorridoEnOrden. Es asi  (para arboles binarios, pero se puede expandir, solo hay que pensar un cachin) :
Código:
recorridoEnOrden(nodo v)
 if v tiene un hijo izquierdo
    recorridoEnOrden(v.hijoIzquierdo());
 hacer algo en v
 if v tiene un hijo derecho
    recorridoEnOrden(v.hijoDerecho());

Para dibujarlo, crea un arreglo con todos los nodos visitados en el orden obtenido por recorridoEnOrden. Si lo haces bien, el orden sera de izquierda a derecha en la coordenada x. Luego, modifica el paintComponent de algun elemento (un panel, por ejemplo) y pinta ovalos: la coordenada x del ovalo sera la ubicacion en el arreglo (+1 para ser exactos), y la coordenada y sera el resultado de obtenerAltura(nodo), función recursiva que retorna la altura de un nodo y se define:
Código:
obtenerAltura(Nodo v)
 si isRoot(v)
   retornar 0
 sino retornar 1 + obtenerAltura(v.parent());



Entendeme que te paso idea y algoritmos y no codigo para ser mas claro en la explicacion y ademas porque seguramente tu implementacion requiere datos precisos distintos a los mios (o no, pero es probable que si). Si lo que quieres es algo hecho puedes buscar en internet, o bueno, si insistes te lo paso.   :-*
44  Programación / Java / Re: Arbol AVL en: 8 Mayo 2009, 01:34 am
Tengo que hacer eso mismo en estos dias, cuando lo termine te lo subo si aun te hace falta
45  Programación / Java / Re: lista dinamica en: 5 Mayo 2009, 02:50 am
Todo eso lo hace la clase de JAVA LinkedList...pero asi te has enterado bien de como funcionan(yo tambien tengo mi lista propia con las modificaciones que me parecieron)...

Saludos

En la universidad hay toda una materia llama Estructuras de Datos dedicada al estudio de eso que Java ya manda creado.  :rolleyes:
46  Programación / Ejercicios / Re: Encriptacion basica con matrices en: 5 Mayo 2009, 02:48 am
uh ya no me acuerdo como era, pero en el link esta el programa+codigo
47  Programación / Java / Re: help jtable en: 1 Mayo 2009, 01:17 am
Me juego a que pregunto alguna estupidez, lo encontró enseguida en el JavaDoc, volvió avergonzado y eliminó todo, aduciendo "error de sistema" y salvando su honra.  :laugh:
48  Programación / Java / Re: calcular distancia entre casillas en java? en: 1 Mayo 2009, 01:16 am
Bien, no tienes un problema sencillo en frente. Te cuento que en programación existen Tipos de Datos llamados Mapas que simulan esto que tu quieres resolver. Deberias estudiarlos y te resultara mas sencillo.
Tambien puedes hacerlo por backtracking, agotando cada una de las posibilidades.
O tambien, y creo que lo mas sencillo, crear un mapa de grafos ponderados indicando la distancia entre cada uno y comparando entre ellos. Si es solo para ese mapa, es muy sencillo ya que los caminos son simetricos los mires por donde los mires.

Por ejemplo, si implementas una estructura que tenga un Nodo de Grafo por cada casilla permitida, la solución sería saltar desde el nodo inicial al siguiente, y de alli evaluar para donde seguir basandonse en x e y y la variacion. Una vez finalizado, guardamos y volvemos atras (backtracking), y empezamos de nuevo en otra direccion.
Al final, tomamos todo lo guardado y comparamos. El menor es la distancia minima entre los Nodos de Grafo.

Como dije, no es algo sencillo. Hay implementaciones mas rapidas tambien, pero no tan comunes e interesantes.
49  Programación / Java / Re: lista dinamica en: 1 Mayo 2009, 00:52 am
Con lista dinamica se me ocrçurre que deben hacer referencia a Lista Enlazadas. Estas son TDA's organizados como si fuera un arreglo, pero en forma de nodos interconectados. Cada nodo mantiene una referencia de posesion y posicion, y asi se mantienen ordenados en la lista "simulada". Como son nodos, puede agregar cuantos quieras (el poder lo limita la memoria de la pc) y puedes agrandar, achicar, agregar, remover, editar, dinamicamente (en ejecucion)
Consulta un libro de Estructuras de Datos para Java o C++ (generalmente se llaman Data Structures and Algorithms y los encuentras en la biblioteca de la universidad).
50  Programación / Java / Re: Ayuda con practica pls en: 28 Abril 2009, 05:07 am
jajajajajajjaajaj
Dios
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 26
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines