b-tree-3-evolution.tex 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. \documentclass{article}
  2. \usepackage[pdftex,active,tightpage]{preview}
  3. \setlength\PreviewBorder{2mm}
  4. \usepackage{tikz}
  5. \usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
  6. \tikzset{
  7. font=\tt,
  8. >= stealth,
  9. every picture/.style={thick},
  10. pointer/.style={*->},
  11. node/.style={
  12. align=center,
  13. rectangle split, rectangle split horizontal,
  14. rectangle split parts=#1,
  15. draw,
  16. anchor=center,
  17. rectangle split part align={center},
  18. rectangle split empty part width=1.5,
  19. rectangle split part fill = {white}
  20. }
  21. }
  22. \begin{document}
  23. \begin{preview}
  24. \begin{tabular}{c | c}
  25. \begin{tikzpicture}
  26. \node[align=center, draw, fill=yellow] at (3,3){
  27. \tikz \node[node=1, rectangle split part fill={gray}] (A) {
  28. \nodepart{one}
  29. };
  30. };
  31. \end{tikzpicture}
  32. &
  33. \begin{tikzpicture}
  34. \node[align=center, draw, fill=yellow] at (3,3){
  35. \tikz \node[node=3, rectangle split part fill={gray, white, gray}] (A) {
  36. \nodepart{one}
  37. \nodepart{two}2
  38. \nodepart{three}
  39. };
  40. };
  41. \end{tikzpicture} \\
  42. \hline
  43. \\
  44. \begin{tikzpicture}
  45. \node[align=center, draw, fill=yellow] at (3,3){
  46. \tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray}] (A) {
  47. \nodepart{one}
  48. \nodepart{two}2
  49. \nodepart{three}
  50. \nodepart{four}4
  51. \nodepart{five}
  52. };
  53. };
  54. \end{tikzpicture}
  55. &
  56. \begin{tikzpicture}
  57. \node[align=center, draw, fill=yellow] at (3,3){
  58. \tikz \node[node=7, rectangle split part fill={gray, white, gray, white, gray, white, gray}] (A) {
  59. \nodepart{one}
  60. \nodepart{two}2
  61. \nodepart{three}
  62. \nodepart{four}4
  63. \nodepart{five}
  64. \nodepart{six}6
  65. \nodepart{seven}
  66. };
  67. };
  68. \end{tikzpicture} \\
  69. \hline
  70. \\
  71. \begin{tikzpicture}
  72. \node[align=center, draw, fill=yellow] at (3,3){
  73. \tikz \node[node=9, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray}] (A) {
  74. \nodepart{one}
  75. \nodepart{two}2
  76. \nodepart{three}
  77. \nodepart{four}4
  78. \nodepart{five}
  79. \nodepart{six}6
  80. \nodepart{seven}
  81. \nodepart{eight}8
  82. \nodepart{nine}
  83. };
  84. };
  85. \end{tikzpicture}
  86. &
  87. \begin{tikzpicture}
  88. \node[align=center, draw, fill=yellow] at (3,3){
  89. \tikz \node[node=11, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
  90. \nodepart{one}
  91. \nodepart{two}2
  92. \nodepart{three}
  93. \nodepart{four}4
  94. \nodepart{five}
  95. \nodepart{six}6
  96. \nodepart{seven}
  97. \nodepart{eight}8
  98. \nodepart{nine}
  99. \nodepart{ten}10
  100. \nodepart{eleven}
  101. };
  102. };
  103. \end{tikzpicture}
  104. \\
  105. \hline
  106. Node is full $\rightarrow$ first split node\\
  107. \begin{tikzpicture}
  108. \node[align=center, draw, fill=yellow] at (2,3){
  109. \tikz \node[node=3, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
  110. \nodepart{one}
  111. \nodepart{two}6
  112. \nodepart{three}
  113. };
  114. };
  115. \node[align=center, draw, fill=yellow] at (0,0){
  116. \tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (B) {
  117. \nodepart{one}
  118. \nodepart{two}2
  119. \nodepart{three}
  120. \nodepart{four}4
  121. \nodepart{five}
  122. };
  123. };
  124. \node[align=center, draw, fill=yellow] at (3,0){
  125. \tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (C) {
  126. \nodepart{one}
  127. \nodepart{two}8
  128. \nodepart{three}
  129. \nodepart{four}10
  130. \nodepart{five}
  131. };
  132. };
  133. \draw[pointer] (1.5, 3.1) -- ($(B)+(0,0.4)$) node[] {};
  134. \draw[pointer] (2.3, 3.1) -- ($(B)+(3,0.4)$) node[] {};
  135. \end{tikzpicture}
  136. &
  137. \begin{tikzpicture}
  138. \node[align=center, draw, fill=yellow] at (2,3){
  139. \tikz \node[node=3, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
  140. \nodepart{one}
  141. \nodepart{two}6
  142. \nodepart{three}
  143. };
  144. };
  145. \node[align=center, draw, fill=yellow] at (0,0){
  146. \tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (B) {
  147. \nodepart{one}
  148. \nodepart{two}2
  149. \nodepart{three}
  150. \nodepart{four}4
  151. \nodepart{five}
  152. };
  153. };
  154. \node[align=center, draw, fill=yellow] at (3.5,0){
  155. \tikz \node[node=7, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (C) {
  156. \nodepart{one}
  157. \nodepart{two}8
  158. \nodepart{three}
  159. \nodepart{four}10
  160. \nodepart{five}
  161. \nodepart{six}12
  162. \nodepart{seven}
  163. };
  164. };
  165. \draw[pointer] (1.5, 3.1) -- ($(B)+(0,0.4)$) node[] {};
  166. \draw[pointer] (2.3, 3.1) -- ($(B)+(3.5,0.4)$) node[] {};
  167. \end{tikzpicture}
  168. \end{tabular}
  169. \end{preview}
  170. \end{document}