Ver Mensaje Individual
  #9  
Antiguo 05-10-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 360
Reputación: 3
navbuoy Va por buen camino
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.
Responder Con Cita