![]() |
![]() |
| 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
|
|||
|
|||
|
lo de enlaza creo que se refiere al campo "sexo"
Ejemplo de lista enlazada sin punteros explícitos usando clases: Código:
type
TNode = class
Data: Integer;
Next: TNode; // Aquí seguimos apuntando al siguiente nodo, pero sin punteros explícitos
end;
TLinkedList = class
private
Head: TNode;
public
procedure AddNode(Value: Integer);
procedure PrintList;
procedure Clear;
end;
Implementación de métodos: Código:
procedure TLinkedList.AddNode(Value: Integer);
var
NewNode: TNode;
begin
// Creamos un nuevo nodo
NewNode := TNode.Create;
NewNode.Data := Value;
NewNode.Next := Head; // El nuevo nodo apunta a la cabeza actual
Head := NewNode; // La cabeza ahora es el nuevo nodo
end;
procedure TLinkedList.PrintList;
var
Current: TNode;
begin
Current := Head;
while Current <> nil do
begin
WriteLn(Current.Data); // Mostramos el dato actual
Current := Current.Next; // Avanzamos al siguiente nodo
end;
end;
procedure TLinkedList.Clear;
var
Temp: TNode;
begin
while Head <> nil do
begin
Temp := Head;
Head := Head.Next;
Temp.Free; // Liberamos la memoria del nodo
end;
end;
ejemplo de Uso: Código:
var List: TLinkedList; begin List := TLinkedList.Create; List.AddNode(10); List.AddNode(20); List.AddNode(30); List.PrintList; // Muestra 30, 20, 10 List.Clear; // Limpia la lista y libera memoria List.Free; // Libera la instancia de la lista end. Última edición por navbuoy fecha: 05-10-2024 a las 11:40:00. |
|
#2
|
||||
|
||||
|
navbuoy: Aunque no sea un puntero explícito, sigue siendo un puntero. Todas las referencias a instancias de clases Delphi lo son. :-)
Ñuño: ¿en qué fase de comprensión vas? Yo no entendí nada todavía pero ¿cuál es tu duda medular? ¿Puedes reducirla a su mínima expresión? Tal vez me anime a echarle un vistazo con calma en estos días. Edito: Bueno, agregaría que al parecer el registro contiene un campo que indica su posición en una matriz unidireccional (vulgarmente conocida como "arreglo"), y eso, un índice por elemento (persona), es suficiente para que pueda conocerse, a partir de un registro, cuál es el siguiente o el anterior registro de la matriz. Diría que tiene la ventaja de que con un solo campo de tipo Integer puedes "enlazar" al registro predecesor y al registro sucesor, cosa que en otros escenarios vemos resuelto con el uso de dos campos punteros en cada record (necesitando más memoria). Un confuso abrazo. ![]() Al González. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| punteros | pepe_baile | C++ Builder | 4 | 24-07-2016 11:19:57 |
| Punteros | kotai | Varios | 1 | 09-08-2010 16:26:34 |
| uso de punteros | David | OOP | 19 | 14-12-2009 09:48:37 |
| C++ y los punteros | marcoszorrilla | La Taberna | 3 | 02-06-2008 18:31:11 |
| Punteros | davitcito | Varios | 2 | 25-04-2005 22:46:24 |
|