Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 7.23 KB | None | 0 0
  1. \documentclass{article}
  2.  
  3. \usepackage[utf8]{inputenc} % если ваш файл содержит русский текст, нужно указать кодировку
  4. \usepackage[russian]{babel} % для того, чтобы писать русский текст
  5. \usepackage{amsmath} % для команды equation*
  6. \usepackage{hyperref} % для вставки ссылок
  7. \usepackage{graphicx}
  8. \usepackage{tikz}
  9. \usepackage[margin=0.5in]{geometry}
  10. \usetikzlibrary{shapes.geometric}
  11. \title{My first document}
  12. \date{2017-09-08}
  13. \author{Jon Snow}
  14.  
  15. % до этого места была преамбула, тут можно задавать разные значения переменных, включать пакеты, а также указывать вещи, которые не суждено поменять посреди документа
  16. \begin{document}
  17. \section{}
  18. Если добавить в пустое сплей-дерево элементы в таком порядке: 30, 40, 60, 50, 80, 70 - то получится такое дерево:
  19. \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
  20. \node[]  (n1) {70};
  21. \node[below right of=n1] (n2) {80};
  22. \node[below left of=n1] (n3)  {60};
  23. \node[below left of=n3]  (n4) {50};
  24. \node[below left of=n4] (n5) {40};
  25. \node[below left of=n5] (n6) {30};
  26.  
  27.  
  28. \path (n1) edge (n2);
  29. \path (n1) edge (n3);
  30. \path (n3)  edge (n4);
  31. \path (n4) edge (n5);
  32. \path (n5) edge (n6);
  33. \end{tikzpicture}\\
  34. Теперь существует 7 вариантов деревьев, которые могут получиться после добавления какого-либо элемента. Например если добавить: 25, 35, 45, 55, 65, 75, 85.\\
  35. \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
  36. \node[]  (n1) {};
  37. \node[below right of=n1] (n2) {};
  38. \node[below right of=n2] (n3)  {};
  39. \node[below left of=n2]  (n4) {};
  40. \node[below right of=n4] (n5) {};
  41. \node[below left of=n4] (n6) {};
  42. \node[below right of=n6] (n7) {};
  43.  
  44. \path (n1) edge (n2);
  45. \path (n2) edge (n3);
  46. \path (n2)  edge (n4);
  47. \path (n4) edge (n5);
  48. \path (n4) edge (n6);
  49. \path (n6) edge (n7);
  50.  
  51.  
  52.  
  53. \node[]  (n1) [right=4cm] {};
  54. \node[below right of=n1] (n2) {};
  55. \node[below right of=n2] (n3)  {};
  56. \node[below left of=n2]  (n4) {};
  57. \node[below right of=n4] (n5) {};
  58. \node[below left of=n4] (n6) {};
  59. \node[below left of=n1] (n7) {};
  60.  
  61. \path (n1) edge (n2);
  62. \path (n2) edge (n3);
  63. \path (n2)  edge (n4);
  64. \path (n4) edge (n5);
  65. \path (n4) edge (n6);
  66. \path (n1) edge (n7);
  67.  
  68.  
  69.  
  70. \node[]  (n1) [right=10cm] {};
  71. \node[below right of=n1] (n2) {};
  72. \node[below right of=n2] (n3)  {};
  73. \node[below right of=n3]  (n4) {};
  74. \node[below left of=n2] (n5) {};
  75. \node[below left of=n1] (n6) {};
  76. \node[below left of=n6] (n7) {};
  77.  
  78. \path (n1) edge (n2);
  79. \path (n2) edge (n3);
  80. \path (n3)  edge (n4);
  81. \path (n2) edge (n5);
  82. \path (n1) edge (n6);
  83. \path (n6) edge (n7);
  84. \end{tikzpicture}
  85.  
  86.  
  87. \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
  88. \node[]  (n1) {};
  89. \node[below right of=n1] (n2) {};
  90. \node[below right of=n2] (n3)  {};
  91. \node[below left of=n2]  (n4) {};
  92. \node[below left of=n1] (n5) {};
  93. \node[below left of=n5] (n6) {};
  94. \node[below left of=n6] (n7) {};
  95.  
  96. \path (n1) edge (n2);
  97. \path (n2) edge (n3);
  98. \path (n2)  edge (n4);
  99. \path (n1) edge (n5);
  100. \path (n5) edge (n6);
  101. \path (n6) edge (n7);
  102.  
  103.  
  104.  
  105. \node[]  (n1) [right=5cm] {};
  106. \node[below right of=n1] (n2) {};
  107. \node[below right of=n2] (n3)  {};
  108. \node[below left of=n1]  (n4) {};
  109. \node[below left of=n4] (n5) {};
  110. \node[below left of=n5] (n6) {};
  111. \node[below left of=n6] (n7) {};
  112.  
  113. \path (n1) edge (n2);
  114. \path (n2) edge (n3);
  115. \path (n1)  edge (n4);
  116. \path (n4) edge (n5);
  117. \path (n5) edge (n6);
  118. \path (n6) edge (n7);
  119.  
  120.  
  121.  
  122. \node[]  (n1) [right=11cm] {};
  123. \node[below right of=n1] (n2) {};
  124. \node[below left of=n1] (n3)  {};
  125. \node[below left of=n3]  (n4) {};
  126. \node[below left of=n4] (n5) {};
  127. \node[below left of=n5] (n6) {};
  128. \node[below left of=n6] (n7) {};
  129.  
  130. \path (n1) edge (n2);
  131. \path (n1) edge (n3);
  132. \path (n3)  edge (n4);
  133. \path (n4) edge (n5);
  134. \path (n5) edge (n6);
  135. \path (n6) edge (n7);
  136.  
  137.  
  138.  
  139. \node[]  (n1) [right=15cm] {};
  140. \node[below left of=n1] (n2) {};
  141. \node[below left of=n2] (n3)  {};
  142. \node[below left of=n3]  (n4) {};
  143. \node[below left of=n4] (n5) {};
  144. \node[below left of=n5] (n6) {};
  145. \node[below left of=n6] (n7) {};
  146.  
  147. \path (n1) edge (n2);
  148. \path (n2) edge (n3);
  149. \path (n3)  edge (n4);
  150. \path (n4) edge (n5);
  151. \path (n5) edge (n6);
  152. \path (n6) edge (n7);
  153. \end{tikzpicture}\\
  154. Эти деревья имеют высоту соответственно: 4, 3, 3, 3, 4, 5, 6. $\implies$ Для того, чтобы дерево имело минимальную глубину нужно добавить например число 35, а максимальную глубину - 85.
  155.  
  156. \newpage
  157. \section{}
  158. Пример дерева, в котором последовательная вставка, а затем удаление одного и того же значения в АВЛ-дереве приведет к дереву другой формы:
  159. Начальное дерево и добавленная пока только как лист вершина (черная).\\
  160. \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
  161. \node[]  (n1) {5};
  162. \node[below right of=n1] (n2) {6};
  163. \node[below left of=n1] (n3)  {2};
  164. \node[below left of=n3]  (n4) {1};
  165. \node[below right of=n3] (n5) {4};
  166. \node[align = center, below of=n5, draw=white] {Начальное дерево};
  167.  
  168. \path (n1) edge (n2);
  169. \path (n1) edge (n3);
  170. \path (n3)  edge (n4);
  171. \path (n3) edge (n5);
  172.  
  173.  
  174.  
  175. \node[]  (n1) [right=4cm] {5};
  176. \node[below right of=n1] (n2) {6};
  177. \node[below left of=n1] (n3)  {2};
  178. \node[below left of=n3]  (n4) {1};
  179. \node[below right of=n3] (n5) {4};
  180. \node[below left of=n5, fill=green] (n6) {3};
  181. \node[align = center, below right of=n6, draw=white] {Дерево с добавленной вершиной 3\\пока в качестве листа};
  182.  
  183. \path (n1) edge (n2);
  184. \path (n1) edge (n3);
  185. \path (n3)  edge (n4);
  186. \path (n3) edge (n5);
  187. \path (n5) edge (n6);
  188.  
  189.  
  190.  
  191. \node[]  (n1) [right=8cm] {4};
  192. \node[below right of=n1] (n2) {5};
  193. \node[below right of=n2] (n3)  {6};
  194. \node[below left of=n1]  (n4) {2};
  195. \node[below left of=n4] (n5) {1};
  196. \node[below right of=n4, fill=green] (n6) {3};
  197. \node[align = center, below of=n6,  distance=3cm, draw=white] {После балансировки\\Нарушение было у вершин:\\2 - высота 2\\6 - высота 0\\ 5 - высота 3};
  198.  
  199. \path (n1) edge (n2);
  200. \path (n2) edge (n3);
  201. \path (n1)  edge (n4);
  202. \path (n4) edge (n5);
  203. \path (n4) edge (n6);
  204.  
  205.  
  206.  
  207. \node[]  (n1) [right=13cm] {4};
  208. \node[below right of=n1] (n2) {5};
  209. \node[below right of=n2] (n3)  {6};
  210. \node[below left of=n1]  (n4) {2};
  211. \node[below left of=n4] (n5) {1};
  212. \node[below right of=n4, draw=white] (n6) {};
  213. \node[align = center, below of=n6, draw=white] {После удаления вершины 3};
  214.  
  215. \path (n1) edge (n2);
  216. \path (n2) edge (n3);
  217. \path (n1)  edge (n4);
  218. \path (n4) edge (n5);
  219. \end{tikzpicture}
  220. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement