Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda con árboles y listas (https://www.clubdelphi.com/foros/showthread.php?t=74404)

San29 17-06-2011 00:12:30

Duda con árboles y listas
 
Hola a todos, tengo un problema con un trabajo que tengo que hacer para la universidad. La duda es cómo puedo hacer para enlazar una lista a un nodo de un árbol. Mas específicamente, lo que tengo que lograr es para cierto dato que posee cada nodo de un árbol, apuntar una lista que contenga ciertas palabras.
Desde ya muchas gracias.

ElKurgan 17-06-2011 07:28:38

A lo mejor te sirve este tutorial On-line de Andre Merwe. Mira en concreto el punto 12, donde dice "Linking a TreeView and a ListView".

Un saludo

San29 17-06-2011 15:01:16

Gracias, pero mi duda es otra, voy a tratar de explicarme mejor: tengo que lograr apuntar una lista a un nodo de un árbol, es decir, poder tener en la lista un apuntador a ese nodo, para que cada vez que yo consulte el árbol y llegue al nodo en cuestión, pueda acceder al contenido de la lista asociada al mismo.
Gracias por su ayuda!

ElKurgan 18-06-2011 08:27:20

Pues creo que se haría de forma parecida. Los nodos tienen una propiedad DATA que almacena punteros. Por tanto puedes almacenar en cada nodo un puntero al listview (o al item del mismo deseado).

Ejemplo de nodo que contiene un índice al elemento de una lista:

Código Delphi [-]
Node.Data := pointer(ListView.Items[ListView.ItemIndex]);

Para asociar un listview entero (no olvides que en Delphi las clases están definidas por punteros camuflados):

Código Delphi [-]
Node.Data := ListView;

Más o menos sería así. Investiga un poco las propiedades de los dos componentes y nos cuentas

Saludos

ecfisa 18-06-2011 20:52:05

Hola.

Si tenes que trabajar con arboles y listas que has definido vos, se hace del mismo modo al que ElKurgan te ha dicho.

En ese caso se supone que tenes declarado algo como:
Código Delphi [-]
...
type
  PLista = ^Lista;
  Lista = record
    ...
    Dato: string;
    Prev: PLista;
    Prox: PLista;
  end;

  PArbol = ^Arbol;
  Arbol = record
    ...
    Lista: PLista;
    Izq: PArbol;
    Der: PArbol;
  end;
...

Luego, para que un nodo del árbol apunte a una lista:
Código Delphi [-]
procedure ApuntarALista(Arb: PArbol; Lst: PLista);
begin
  ...
  Arb^.Lista:= Lst;  
  ...
end;
Que en definitiva es lo mismo que te sugirió ElKurgan, aplicado a árboles y listas definidas por vos.


Saludos.


La franja horaria es GMT +2. Ahora son las 02:26:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi