Jovfer

Упорядоченный список

Jun 19th, 2012
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.16 KB | None | 0 0
  1. program OrderedList;
  2. {$APPTYPE CONSOLE}
  3.  
  4. uses
  5.   SysUtils;
  6.  
  7. type
  8.   PList = ^TList;
  9.   TList = record
  10.     inf: integer;
  11.     next: PList;
  12.   end;
  13.  
  14. // создание нового звена
  15. function createNewNode(inf: integer; p: PList): PList;
  16. begin
  17.   new(Result);
  18.   Result.inf := inf;
  19.   Result.next := p;
  20. end;
  21.  
  22. //вставка в упорядоченный
  23. procedure insert(var head: PList; inf: integer);
  24. var
  25.   before, ind: PList;
  26. begin
  27.   before := nil;
  28.   ind := head;
  29.   while (ind <> nil) and (ind.inf < inf) do
  30.   begin
  31.     before := ind;
  32.     ind := ind.next;
  33.   end;
  34.   if ind = head then
  35.     head := createNewNode(inf, head)
  36.   else
  37.     before.next := createNewNode(inf, ind);
  38.  
  39. end;
  40.  
  41. var
  42.   tmp: integer;
  43.   head: PList;
  44.  
  45. begin
  46.   head := nil;
  47.  
  48.   // создание списка
  49.   repeat
  50.     readln(tmp);
  51.     if tmp <> -13 then // конец ввода - число "-13"
  52.       insert(head, tmp);
  53.   until tmp = -13;
  54.  
  55.   //вывод списка
  56.   while head <> nil do
  57.   begin
  58.     write(head.inf, ' ');
  59.     head := head.next;
  60.   end;
  61.  
  62.   // нужно добавить освобождение списка
  63.  
  64.   readln;
  65.  
  66. end.
Advertisement
Add Comment
Please, Sign In to add comment