Advertisement
melnikovmaxim

KLENINA_merge_sort

Dec 16th, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.37 KB | None | 0 0
  1. //link https://yadi.sk/d/37EEnaZxM88Ovg
  2. type
  3.    uk = ^list1;
  4.    list1 = record
  5.       next: ^list1;
  6.       inf: integer;
  7.    end;
  8.  
  9.    uk2 = ^list2;
  10.    list2 = record
  11.       next: ^list2;
  12.       inf: integer;
  13.    end;
  14.    
  15.    uk3 = ^list3;
  16.    list3 = record
  17.       next: ^list3;
  18.       inf: integer;
  19.    end;
  20.    
  21. var
  22.    head1, q1: uk;
  23.    head2, q2: uk2;
  24.    head3, q3: uk3;
  25.    i, j, j1: integer;
  26.    m: array[1..20] of integer;
  27.    
  28. begin
  29.    new(head1);
  30.    new(head2);
  31.    new(head3);
  32.    new(q1);
  33.    new(q2);
  34.    new(q3);
  35.    head1 := q1;
  36.    head2 := q2;
  37.    head3 := q3;
  38.    writeln('Первый список');
  39.    for i := 1 to 5 do
  40.       begin
  41.          new(q1^.next);
  42.          if i=1 then
  43.          begin
  44.          writeln('Введите 5 элементов 1-го списка');
  45.          writeln();
  46.          end;
  47.          writeln('Введите ',i,' элемент списка');
  48.          readln(q1^.inf);
  49.          if i < 5 then
  50.             q1 := q1^.next;
  51.       end;
  52.    writeln();
  53.    writeln('Второй список');
  54.    for i := 1 to 5 do
  55.       begin
  56.          new(q2^.next);
  57.          if i=1 then
  58.          begin
  59.          writeln('Введите 5 элементов 1-го списка');
  60.          writeln();
  61.          end;
  62.          writeln('Введите ',i,' элемент списка');
  63.          readln(q2^.inf);
  64.          if i < 5 then
  65.             q2 := q2^.next;
  66.       end;
  67.    writeln();
  68.    q1 := head1;
  69.    q2 := head2;
  70.    for i := 1 to 5 do
  71.       begin
  72.          m[i] := q1^.inf;
  73.          q1 := q1^.next;
  74.          m[i + 5] := q2^.inf;
  75.          q2 := q2^.next;
  76.       end;
  77.    for i := 9 downto 1 do
  78.       for j := 1 to i do
  79.          if m[j] > m[j + 1] then begin
  80.             j1 := m[j];
  81.             m[j] := m[j + 1];
  82.             m[j + 1] := j1;
  83.          end;
  84.    for i := 1 to 10 do
  85.       begin
  86.          new(q3^.next);
  87.          q3^.inf := m[i];
  88.          q3 := q3^.next;
  89.       end;
  90.    q3 := head3;
  91.    writeln('Третий список');
  92.    while head3^.next <> nil do
  93.       begin
  94.          write(head3^.inf,' ');
  95.          head3 := head3^.next;
  96.       end;
  97.    q1 := head1;
  98.    q2 := head2;
  99.    while q1<>nil do
  100.       begin
  101.          head1:=head1^.next;
  102.          dispose(q1);
  103.          q1:=head1;
  104.       end;
  105.    while q2<>nil do
  106.       begin
  107.          head2:=head2^.next;
  108.          dispose(q2);
  109.          q2:=head2;
  110.       end;
  111. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement