Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.77 KB | None | 0 0
  1. type binaryTree = record
  2.   value, count, key: integer;
  3.   left, right: ^binaryTree;
  4. end;
  5.  
  6. function CountOfLevels(tree: ^binaryTree):integer;
  7. var l,r,x:integer;
  8. begin
  9.   if tree <> nil then begin
  10.     l:=CountOfLevels(tree^.left);
  11.     r:=CountOfLevels(tree^.right);
  12.     if l < r then x:=r
  13.     else x:=l;
  14.     CountOfLevels:=x+1;
  15.     end
  16.      else
  17.      CountOfLevels:=0;
  18. end;
  19.  
  20. procedure add(value: integer; var tree: ^binaryTree);
  21. var temp: ^binaryTree;
  22. begin
  23.   if tree = nil then begin
  24.     new(temp);
  25.     temp^.left := nil; temp^.right := nil; temp^.value := value;
  26.     tree := temp;
  27.   end
  28.   else begin
  29.       if tree^.value > value then add(value, tree^.left)
  30.       else add(value, tree^.right);
  31.   end;
  32. end;
  33.  
  34.  
  35. procedure Print_Btree (var tree: ^binaryTree; l: integer);
  36. var i : integer;
  37. begin
  38. if (tree <> Nil) then
  39. with tree^ do
  40. begin
  41. Print_Btree(right,l+1);
  42. for i:= 1 to l*4 do
  43. write(' ');
  44. // writeln('значение = ',value,' счетчик = ', count);
  45. writeln(value);
  46. Print_Btree(left,l+1);
  47. end;
  48. end;
  49.  
  50. procedure createNewTree();
  51. var root: ^binaryTree;
  52. inputCounter: integer = 1;
  53. input, level: integer;
  54. begin
  55.   writeln('Бинарные деревья');  writeln;
  56.   writeln('Поочерёдно вводите элементы бинарного дерева (0 - конец): ');  writeln;
  57.  
  58.   repeat begin
  59.     write('Введите следующий элемент дерева  ');
  60.     readln(input);
  61.    
  62.     if input = 0 then break;
  63.    
  64.     add(input, root);
  65.     inputCounter := inputCounter + 1
  66.   end
  67.   until (inputCounter < 0);
  68.   writeln;
  69.   level:= CountOfLevels(root);
  70.   print('Максимальная глубина дерева', level);
  71.   writeln();
  72.   Print_Btree(root, 2);
  73. end;
  74.  
  75.  
  76. begin
  77.   createNewTree();
  78. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement