Salve a tutti amici del forum. Ho il seguente problema da risolvere riguardo alla scrittura di una lista simmetrica in Pascal. La procedura da me elaborata infatti mi stampa la lista intera solo se è composta da un numero pari di cifre altrimenti me la tronca all'ultimo elemento. C'è qualcuno di voi che è in grado di suggerirmi dove sbaglio? ecco il codice:

codice:
   . . .

type punt=^elem;
     elem= record
                 val: integer;
                 back : punt;
                 next : punt;
           end;
var p,q : punt;
    m : integer;

    procedure LeggiEScriviLista( var p,q : punt; k : integer);
    begin
         if k=0
         then p:=nil
         else begin
                   new(p);
                   read(p^.val);
                   new(q);
                   read(q^.val);
                   p^.back:=q;
                   write(p^.val,' ');
                   write(q^.val,' ');
                   LeggiEScriviLista(p^.back,q,k-1);
              end;
    end;{ Fine procedura LeggiEScriviLista }

Ringraziandovi sin d'ora per l'aiuto saluto utenti e moderatori del Forum.Ciao!!!