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.