Дан список вещественных чисел. Написать функцию переноса в начало его последнего элемента — Pascal(Паскаль)

uses crt;
type
PNode=^Node;
Node=record
 data:real;
 next:PNode;
end;
var
Head:PNode;
i:real;
 
procedure AddToSpis(var Head1:PNode;k:integer);
var
tmp:PNode;
begin
  if Head1=nil then
    begin
      New(Head1);
      tmp:=Head1;
    end
  else
     begin
       tmp:=Head1;
         while tmp^.next <> nil do
           tmp:=tmp^.next;
         New(tmp^.next);
         tmp:=tmp^.next;
     end;
  tmp^.next:=nil;
  tmp^.data:=k;
end;
procedure Print(Head1:PNode);
begin
   while Head1 <> nil do
     begin
       write(Head1^.data:4);
       Head1:=Head1^.next;
     end;
end;
procedure FreeSpis(var Head1:PNode);
var
tmp:PNode;
begin
  while Head1 <> nil do
     begin
       tmp:=Head1;
       Head1:=Head1^.next;
       Dispose(tmp);
     end;
end;
procedure Change(var Head1:PNode);
var
tmp:PNode;
c:integer;
begin
  tmp:=Head1;
    while tmp^.next <> nil do
      tmp:=tmp^.next;
  c:=Head1^.data;
  Head1^.data:=tmp^.data;
  tmp^.data:=c;
end;
 
begin
  Head:=nil;
     writeln('Заполнение  списка,признак окончания 99');
     read(i);
    repeat
      AddToSpis(Head,i);
      read(i);
    until i=99;
     ClrScr;
  writeln('Сформированный список ');
  Print(Head);
  writeln;
  Change(Head);
  writeln('Изменённый список ');
  Print(Head);
  FreeSpis(Head);
end.

Leave a Comment

83 − = 82