• Jueves 14 de Noviembre de 2024, 16:45

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Ranmy

Páginas: [1]
1
ADA / Eliminar el ultimo en una lista dinamica
« en: Lunes 28 de Diciembre de 2009, 12:01 »
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!!!

Páginas: [1]