24/05/12 9:56
fabioser
Salve. Vorrei sapere se può essere considerata esatta la scrittura della procedura LeggiEScriviLista nella maniera seguente:
L'ho testata e stavolta non mi da errore. Tuttavia vorrei sapere come è possibile far si che l'ultimo elemento ( l'm-esimo), punti anch'esso a nil senza compromettere la validità della procedura medesima. Grazie dell'aiuto che vorrete fornirmi.
program ScritturaDiUnaListaOrdinataNeiDueSensi(input,output); label 99; const bell=07; 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); readln(p^.val); writeln(p^.val); new(q); readln(q^.val); writeln(q^.val); p^.next:=q; dispose(q); LeggiEScriviLista(p^.back,q,k-1); end; end;{ Fine procedura LeggiEScriviLista } { Corpo del programma } begin writeln('------------------------- Dati di ingresso --------------------------'); writeln; write('Fornire la lunghezza della lista: '); readln(m); writeln; if m>=10 then begin writeln(chr(bell),'Errore nei dati di ingresso!- STOP -'); goto 99; end else begin writeln('Fornire la lista: '); writeln; LeggiEScriviLista(p,q,m); end; 99 : readln; end.
L'ho testata e stavolta non mi da errore. Tuttavia vorrei sapere come è possibile far si che l'ultimo elemento ( l'm-esimo), punti anch'esso a nil senza compromettere la validità della procedura medesima. Grazie dell'aiuto che vorrete fornirmi.
Ultima modifica effettuata da Phi 24/05/12 18:25
aaa