• Jueves 14 de Noviembre de 2024, 17:15

Autor Tema:  Eliminar el ultimo en una lista dinamica  (Leído 2062 veces)

Ranmy

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Eliminar el ultimo en una lista dinamica
« en: Lunes 28 de Diciembre de 2009, 12:01 »
0
Buenas, antes de todo decir ke soy nuevo en esto asi que no tengo mucha idea^^.
Me ha propuesto un ejercicio el cual consiste en borrar el ultimo numero de una lista dinamica con apuntadores.
Y el caso es que no se hacerlo. Aquí está el programa que tenía pensado utilizar:

with tipos; Use tipos;

Procedure Elimina_ultimo (L: in out a_entero)is
   
ant , act : a_entero:= L;

   begin
   
    While act /= null  loop
        ant:= act;-- anterior por detras del actual
        act:= act.sig;      
    end loop;
     
    ant:= null;


end Elimina_ultimo;


El problema que tengo es que el apuntador act queda apuntando a el null que indica que la lista ha terminado y el ant queda apuntando al último. Con eso no consigo borrar el último ya que necesitaria que un apuntador que apuntara al penultimo para hacer ant.sig:=null; bueno si la solución es mas sencilla y alguien me echa una mano para hacer este programilla se lo agradecería ^.^.

Gracias!!!