PDA

Ver la Versión Completa : Crear directorio con lista lineal


davitcito
04-05-2005, 18:57:18
Como podría crear una relacion de personas (solo nombre), con listas lineales y apuntadores y ordenarlas alfabéticamente? Gracias.

Neftali [Germán.Estévez]
05-05-2005, 10:05:55
No me acaba de quedar claro del todo, ¿Puedes utilizar un TStringList ordenado?

Es una lista, está ordenada, puedes introducir el nombre y lo de lineal no lo he entendido (¿no lo son todas las listas?).

hermes_32
05-05-2005, 10:12:06
Hola davitcito,

pues a mi me pasa como a Neftali, no me queda claro. Pero por lo que intuyo es que quieres visualizar los nombres de personas en una lista ordenada alfabeticamente.

Si es eso, si utilizas un TListBox puedes ordenarlos cambiando la propiedad Sorted a True.

Un saludo.

davitcito
05-05-2005, 19:09:51
Buenas y gracias por las respuestas, pero a lo q yo me referia es a como puedo crear una LISTA ENLAZADA mediante la creación de nodos y apuntadores. Por ejemplo, acá tengo un algoritmo de referencia:
Metodo Insertarfinal(N) // incluye por el final
Apuntador nuevo, p // apuntan nodo
Reservar Nuevo
Nuevo.Num <-- N
Nuevo.si <-- Nil
si Inicio = NIL entonces
Inicio <-- Nuevo
sino
p <-- Inicio
Mientras p.sig <> Nil hacer
P <-- p.sig
fmientras
p.sig <-- Nuevo
fsi
fmetodo

Espero este claro este algoritmo, je je, y también espero me ayuden con la pregunta. Saludos.

Delphius
07-05-2005, 07:20:01
Hace mucho que no hago uso punteros, y listas enlazadas.... pero sino me equivoco la solución pasa por esto:

Type
TLista = ^TNodo; // el símbolo ^ indica que es un puntero.
TNodo = record
Info: tipo_de_info;
sig: ^Nodo; // Esto permite hacer el recorrido y el "enlazamiento"
end;
var
Lista = TLista;
...

Para pedir memoria: New(p);
Para liberar memoria: Dispose(p);
p^.Info := // aquí va la info;
p^.sig := Nil;


Siendo p una variable de tipo TNodo.

Creo que con esto ya puedes comenzar.... Si tienes dudas ya avisaras....