![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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, |
|
#2
|
||||
|
||||
|
Cita:
|
|
#3
|
||||
|
||||
|
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 |
|
#4
|
||||
|
||||
|
Cita:
![]() Saludos, |
|
#5
|
||||
|
||||
|
Cita:
en todo caso si en realidad son dos variables(punteros) que tambien se los puede utilizar, en ese caso la solucion es muy fácil.![]() 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 |
|
#6
|
||||
|
||||
|
Cita:
Y la verdad es que no veo manera de como únicamente se pueda llegar a la imagen 2 empleando P1 y P2. En este caso caben dos posibilidades: 1. El ejercicio está mal planteado, ó bien 2. Anterior y Próximo son dos nodos flags. Con ellos ya podría llegarse a una solución. Antes de pensar que el profesor ha metido el dedo prefiero inclinarme por lo segundo. Como dices, habrá que esperar a ver que comenta Delphi al respecto. Saludos, |
|
#7
|
||||
|
||||
|
Cita:
Supongo que no implementaría una lista doblemente enlazada si supiera con certeza que son 4 nodos ya que las listas, normalmente, se implementan cuando el número de nodos a agregar no está definido. De ahí mi anterior conclusión. Ya que si la lista tuviese más nodos y los enlaces pueden 'romperse' en cualquier punto de forma aleatoria, lo más probable es que sea imposible recostruir la lista sólamente a partir sus enlaces. Incluso usando más de un apuntador. Ahora, si se trata de ese caso en concreto tendría solución... Saludos. ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|