FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
ok, explicaré de otra forma:
La imagen 1, cuando la información está mal relacionada, un usuario puede optar a desfragmentar, entonces cae en la imagen 2, y de la imagen 2 el resultado en código de la desfragmentación que se ejecutó es la imagen 3, donde ya se enlazan correctamente, lo que necesito es saber como relacionar la información y para ello se hace dibujando las flechas paralelas en sentido contrario asi como la imagen 2, luego el código representa el orden luego de eliminar las líneas de la imagen 1, pero en sí lo que quiero saber es que me exliquen la lógica de llegar la la imagen 2, eso significaría llegar a quitar todo el desorden de la imagen 1... |
#2
|
||||
|
||||
Cita:
Es decir, en la imagen1, por ejemplo, (3) parece que tiene un puntero a (1), mientra que en la imagen2, (3) está relacionado con (2) y con (4). El problema es que no entiendo cómo pasar de una imagen a la otra, Ahí no hay una simple ordenación, ahí se han cambiado más cosas. Los punteroos no apuntan a los mismos lugares, por lo tanto no entiendo la relación entre ambas imágenes. No parece que sea una simple ordenación, o yo al menos no la veo...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Cita:
ahhhh es que o sea las imagenes que yo he puesto es de un ejemplo que tengo, pero en si el detalle es ¿cómo se resuelve ese tipo de problemas?, de tal forma que queden como la imagen 2, ya que la imagen 1 esta desordenado (es el problema a resolver), y el resultado es la imagen 2 junto con el código que hace referencia a la imagen 2, pero ¿cómo o cuales son los pasos para resolver este tipo de problemas con listas, punteros...etc los punteros se pueden mover, porque algunas veces sólo existe un puntero, pero eso depende del problema, lo que necesito es eliminar las lineas desordenadas y dejarlas como la imagen 2 Última edición por delphi fecha: 29-11-2010 a las 23:35:34. |
#4
|
||||
|
||||
Yo más o menos entiendo lo que pretetendes hacer, pero la duda que tengo es, si se puede ordenarlos cambiando de posicion a los nodos?
Es decir hacer por ejemplo que el nodo de la posicion 3 (Que es P1) pueda llegar a tener la posision 1. Dinos si vale mover la posicion de los nodos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#5
|
||||
|
||||
Hola delphi.
Según tu gráfico la lista erronea (a reparar) esta así: p1.ant = nil (o indeterminado) p1.sig = 2 p1.Dato = Img1 p2.ant = 3 p2.sig = 2 p2.Dato = Img2 p3.ant = nil (o indeterminado) p3.sig = 2 p3.Dato = Img3 p4.ant = 3 p4.sig = 1 p4.Dato = Img4 Realmente no veo manera de organizar esos nodos partiendo de sus enlaces, ya que la lista no es continua. Si quisieras recorrerla de forma ascendente no irias más allá del nodo 2 y en forma descendente, mas allá del nodo 3. Lo que yo haría es reconstruir la lista con el mismo criterio de ordenamiento que utilizaste, supuestamente basado en los datos de los nodos. Saludos. Última edición por ecfisa fecha: 30-11-2010 a las 00:56:50. |
#6
|
||||
|
||||
Cita:
|
#7
|
||||
|
||||
Hola delphi.
Espero interpretarte bien... Si tenés el puntero al primer elemento de la lista (llamémosla Lista), para acceder al segundo nodo (imágen), solamente tenés que hacer:
Si no es una lista circular, el nodo 'p1' pareciera ser coherente, por que: p1.ant:= nil; p1.sig:= p2 Así que no deberías tener dificultad de acceder a P2 con la instrucción anterior. Saludos. |
#8
|
||||
|
||||
Hola,
Intuyo que se trata de un práctico o trabajo para entregar en alguna cátedra o materia. Tus imágenes me hizo acordar a un TP de Lenguajes cuando vi el tema de punteros y TADs. El ejercicio consistía en escribir las instrucciones necesarias para ir de un estado inicial (tu imagen 1) hacia un estado final (imagen 2). No necesariamente debíamos apegarnos a un lenguaje, aunque usamos la sintaxis de Pascal. En ese entonces los ejercicios los hacíamos a mano y nos tomábamos toda la tarde, la noche e incluso en ocasiones la mañana para resolverlos... Nos daban de 20 a 50. Vaya que han cambiado las cosas, ahora uno "consulta" pidiendo que les resuelvan el ejercicio y todo hace a computadora. Respondiendo a tu duda: ¿Cómo se hace? Y... "jugando" con los punteros, intercambiandolos, empleando alguna variable auxiliar en caso de considerarse necesario. No hay un proceso único o manera de encarar el problema. Las instrucciones dependerán del problema, no hay método genérico... allí es donde radica lo lindo de esto Debes guiarte por la forma en como están relacionados, y corregir los punteros. Lamentablemente deberás exprimir el cerebro. Además, si te damos los pasos lo resolvemos nosotros... se supone que lo debes resolver vos. Aquí algo que puedes tener como guía, desde un vistazo rápido a la imagen 1: P2^A = P1 P2^S = P2 P1^S = P2 Ahorita está un poco más complicado: Anterior^S^A = P1 La explicación es fácil de apreciar: Anterior^S (que se lee el puntero siguiente del nodo Anterior) apunta hacia el nodo 4º. Ahora el puntero anterior de éste va hacia el nodo 3º que corresponde a la variable P1. De la imagen 2 vemos que P2 debe apuntar hacia P1, por lo que prematuramente podría resolverse esta parte con algo como: P2^S = P1 Espero haber dado una idea. El resto es cerebral y lógica. Saludos, |
#9
|
||||
|
||||
Cita:
|
#10
|
||||
|
||||
Bueno analizandolo un poco más a fondo el problema veo que la cuestion no puede ser resuelta, ya que para poder resolverla por lo menos deberiamos tener un puntero o referencia que vaya de P1 o P2 hacia el nodo nro. 4 o tambien un tercer puntero(P3) que apunte al nodo 4.
El caso actual es que con P1 y P2 solo podemos movernos entre ellos mismo y no podemos salir de cualquiera de ellos ya sea al nodo nro 1 o nodo nro 4., por lo tanto estamos encerrados.. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#11
|
||||
|
||||
Cita:
Saludos, |
#12
|
||||
|
||||
Cita:
Bueno, eso tendría que comentarnos nuestro amigo delphi. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como listas las horas exactas de un dia? | flystar | MySQL | 2 | 01-06-2010 11:16:22 |
Manejo de Multi-Listas (listas de listas) | DelphiRat | OOP | 4 | 03-07-2006 19:42:58 |
sobre punteros... y memoria ¿Como perder su valor, sin hacerlo? | Delphius | Varios | 8 | 19-04-2006 10:55:06 |
Como ordeno la informacion que tengo en tabla de memoria? | Luis Alberto | Tablas planas | 7 | 23-11-2005 22:07:57 |
|