Estructura Dinamicas
Almacenar datos en distintos tipos de datos estructurados :[pic]
Lo que yo pongo en VAR el compilador lo asigna como estático.
A diferencia de la memoria dinámica que se asigna “en tiempo de ejecución”.
EN TIEMPO DE EJECUCIÓN :
• Pedir,asignar memoria.
• Procesar
• Liberar
Estos pasos me permiten un mejor almacenamiento de la memoria.
OJO : No es que se usa dinámica porque la estática me queda chica.
Si tuviera unaMATRIZ :
TE * TT * LONG CAMPO > 64 K
TE * TT * LONG CAMPO Ptr^.Sgte^.Info) DO
Ptr := Ptr^.Sgte;
PtrNuevo^.Sgte := Ptr^.Sgte;
Ptr^.Sgte := PtrNuevo
END;
En esteprocedimiento se sale del ciclo While por dos motivos :
• Porque Ptr = Nil , ya que Valor es mayor que todos.
• O, porque Valor que encontré es mayor que el.
[pic]
e)
PROCEDUREInsertaNodo (Var Lista:TipoLista; Valor:TipoInfo);
BEGIN
IF lista = Nil
THEN InsertaNodo (Lista, Valor)
ELSE IF Valor < Lista^.Info
THEN InsertaDelante (Lista, Valor)ELSE InsertaEnMedio (Lista, Valor)
END;
f)
PROCEDURE SuprimeNodo (Var Lista:TipoLista; Valor:TipoInfo);
VAR
PtrAct,PtrAnt : TipoLista;
BEGIN
PtrAct := Lista;
PtrAnt := Nil;WHILE (PtrAct Nil) And (Valor > PtrAct^.Info) DO
BEGIN {Ojo Valor es un String, pero puede ser un Registro también}
PtrAnt := PtrAct;
PtrAct :=PtrAct^.Sgte
END;
IF (PtrAct Nil) And (Valor = PtrAct^.Info)
THEN
BEGIN
IF PtrAnt Nil
THEN PtrAnt^.Sgte := PtrAct^.Sgte
ELSE Lista :=PtrAct^.Sgte;
Dispose (PtrAct)
END
END;
En este procedimiento se sale del ciclo While por dos motivos :
• Porque PtrAct = Nil , ya que Valor es mayor que todos y no se encontró el...
Regístrate para leer el documento completo.