Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2005
mminorm mminorm is offline
Miembro
 
Registrado: may 2005
Posts: 23
Poder: 0
mminorm Va por buen camino
Lo unico que hice con eso fue declarar el registro ke tendr[a el nodo, segun tu consulta el nodo no tendra unicamente un dato si no varios, veo mas facil trabajar con un registro y luego declarar una variable del tipo del registro ., esa es la idea principal de eso. de esa declaracion.

{ejemplo del registro}
Tlista = record
nombre: string[30];
direccion: string[100];
{etc....}
end;


LMilista = ^Nodo //exacto seria tu puntero
Nodo = record
info:Tlista; //porque no creo ke vayas a manejar un solo dato sino varios,
Sig,Ant:LMilista;
end;

Al hacer esto haces un paquete de la informacion ke necesitar para cada nodo, ademas es recomendable utilizar siempre un registro para la informcion ke almacenaras en la lista enlazada. aunke sea un solo dato

Con el uso de la lista es muy facil, tenes ke ver cada posicion del vector como un puente a la lista, de esta manera solamente tenes ke hacer un TDA para la lista ke contiene cada posicion del vector, de esta manera podes hacer lo siguiente(asumo ke sabes ke es un TDA):

var
Tvectorlista: V:
.
.
codigo
.
.
evento click de un boton.......
begin
insertar(V[i].salto,reg) {donde reg es un registro de tipo Tlista. Nota tambien ke insertar recibe 2 parametros la lista y un registro}
end;

Recuerda ke cada vez ke vas a insertar un nodo en la lista tenes ke declarar un registro de tipo Tlista.

Asi se usa, ahora bien nota ke la verdadera lista esta en el salto ke contiene el vector no en el vector mismo, de esta manera estas manejando una lista comun y corriente, no t hagas bolas con lo del vector ke eso no es nada es solo un puente. Cualkier cosa estamos en contacto

Última edición por mminorm fecha: 01-06-2005 a las 08:25:41.
Responder Con Cita
  #2  
Antiguo 01-06-2005
mminorm mminorm is offline
Miembro
 
Registrado: may 2005
Posts: 23
Poder: 0
mminorm Va por buen camino
Davit lei tu correo, mira con el codigo ke t di enlazas cada casilla del arreglo a una lista, asi es como enlazas una lista diferente a cada casilla del arreglo:

Tlista = record //registro para el nodo
nombre: string[30];
direccion: string[100];
{etc....}
end;


LMilista = ^Nodo //tu puntero(lista enlazada)
Nodo = record
info:Tlista;
Sig,Ant:LMilista;
end;

Tvectorlista = record //registro ke se convertira en el tipo de tu vector y ke contiene el salto a tu lista
salto:LMilista;
end;


Elementos:Array[1..N] of Tvectorlista; //declaracion del arreglo de n posicion donde cada posicion es de tipo Tvectorlista, y Tvectorlista tiene un salto a tu lista.

Luego declaras una variable de tipo Elementos y un registro de tipo Tlista para la informacion ke tendras ke guardar en cada nodo:

Var
Elementos: Tuarreglo;
Tlista:Turegistro;

Y eso es todo

Última edición por mminorm fecha: 01-06-2005 a las 08:39:05.
Responder Con Cita
  #3  
Antiguo 01-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo reorganizaba las cosas un poquito, No sé si os gustará.

Código Delphi [-]
type
pNodo = ^Nodo // Puntero a un nodo
Nodo = record
 OtraInformacion:String[255];
 
 Sig,AntNodo;
end;

TCliente = record //registro para el nodo
 Lista Nodo;//aqui tenemos ya el puntero.
 nombre: string[30];
 direccion: string[100];
 {etc....}
end;

TvectorCliente = Array[1..N] of TCliente;

Para acceder:
Código Delphi [-]
var  vector:TvectorCliente;
begin
  vector[1].nombre := 'pepe';
  new(vector[1].Lista); // creamos el primer nodo para este cliente
  vector[1].Lista^.OtraInformacion := ' pues eso';
  new(vector[1].Lista^.Sig); // creamos un nuevo nodo para el cliente 1
end;

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 01-06-2005 a las 10:27:13.
Responder Con Cita
  #4  
Antiguo 01-06-2005
Avatar de davitcito
davitcito davitcito is offline
Miembro
 
Registrado: mar 2005
Posts: 28
Poder: 0
davitcito Va por buen camino
Bueno, vaya, ahora si que se han pulido gracias mminorm & Lepe por todo, y en general gracias a todos, me ha quedado muy en claro. Da gusto consultar en este foro, pues siempre hay personas dispuestas a ayudar

Saludos.
__________________
Tengo que pasar .... y lo voy a lograr.

Última edición por davitcito fecha: 01-06-2005 a las 16:12:05.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:29:01.


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
Copyright 1996-2007 Club Delphi