Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass{article}
- \usepackage[utf8]{inputenc} % если ваш файл содержит русский текст, нужно указать кодировку
- \usepackage[russian]{babel} % для того, чтобы писать русский текст
- \usepackage{amsmath} % для команды equation*
- \usepackage{hyperref} % для вставки ссылок
- \usepackage{graphicx}
- \usepackage{tikz}
- \usepackage[margin=0.5in]{geometry}
- \usetikzlibrary{shapes.geometric}
- \title{My first document}
- \date{2017-09-08}
- \author{Jon Snow}
- % до этого места была преамбула, тут можно задавать разные значения переменных, включать пакеты, а также указывать вещи, которые не суждено поменять посреди документа
- \begin{document}
- \section{}
- Если добавить в пустое сплей-дерево элементы в таком порядке: 30, 40, 60, 50, 80, 70 - то получится такое дерево:
- \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
- \node[] (n1) {70};
- \node[below right of=n1] (n2) {80};
- \node[below left of=n1] (n3) {60};
- \node[below left of=n3] (n4) {50};
- \node[below left of=n4] (n5) {40};
- \node[below left of=n5] (n6) {30};
- \path (n1) edge (n2);
- \path (n1) edge (n3);
- \path (n3) edge (n4);
- \path (n4) edge (n5);
- \path (n5) edge (n6);
- \end{tikzpicture}\\
- Теперь существует 7 вариантов деревьев, которые могут получиться после добавления какого-либо элемента. Например если добавить: 25, 35, 45, 55, 65, 75, 85.\\
- \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
- \node[] (n1) {};
- \node[below right of=n1] (n2) {};
- \node[below right of=n2] (n3) {};
- \node[below left of=n2] (n4) {};
- \node[below right of=n4] (n5) {};
- \node[below left of=n4] (n6) {};
- \node[below right of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n2) edge (n4);
- \path (n4) edge (n5);
- \path (n4) edge (n6);
- \path (n6) edge (n7);
- \node[] (n1) [right=4cm] {};
- \node[below right of=n1] (n2) {};
- \node[below right of=n2] (n3) {};
- \node[below left of=n2] (n4) {};
- \node[below right of=n4] (n5) {};
- \node[below left of=n4] (n6) {};
- \node[below left of=n1] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n2) edge (n4);
- \path (n4) edge (n5);
- \path (n4) edge (n6);
- \path (n1) edge (n7);
- \node[] (n1) [right=10cm] {};
- \node[below right of=n1] (n2) {};
- \node[below right of=n2] (n3) {};
- \node[below right of=n3] (n4) {};
- \node[below left of=n2] (n5) {};
- \node[below left of=n1] (n6) {};
- \node[below left of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n3) edge (n4);
- \path (n2) edge (n5);
- \path (n1) edge (n6);
- \path (n6) edge (n7);
- \end{tikzpicture}
- \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
- \node[] (n1) {};
- \node[below right of=n1] (n2) {};
- \node[below right of=n2] (n3) {};
- \node[below left of=n2] (n4) {};
- \node[below left of=n1] (n5) {};
- \node[below left of=n5] (n6) {};
- \node[below left of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n2) edge (n4);
- \path (n1) edge (n5);
- \path (n5) edge (n6);
- \path (n6) edge (n7);
- \node[] (n1) [right=5cm] {};
- \node[below right of=n1] (n2) {};
- \node[below right of=n2] (n3) {};
- \node[below left of=n1] (n4) {};
- \node[below left of=n4] (n5) {};
- \node[below left of=n5] (n6) {};
- \node[below left of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n1) edge (n4);
- \path (n4) edge (n5);
- \path (n5) edge (n6);
- \path (n6) edge (n7);
- \node[] (n1) [right=11cm] {};
- \node[below right of=n1] (n2) {};
- \node[below left of=n1] (n3) {};
- \node[below left of=n3] (n4) {};
- \node[below left of=n4] (n5) {};
- \node[below left of=n5] (n6) {};
- \node[below left of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n1) edge (n3);
- \path (n3) edge (n4);
- \path (n4) edge (n5);
- \path (n5) edge (n6);
- \path (n6) edge (n7);
- \node[] (n1) [right=15cm] {};
- \node[below left of=n1] (n2) {};
- \node[below left of=n2] (n3) {};
- \node[below left of=n3] (n4) {};
- \node[below left of=n4] (n5) {};
- \node[below left of=n5] (n6) {};
- \node[below left of=n6] (n7) {};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n3) edge (n4);
- \path (n4) edge (n5);
- \path (n5) edge (n6);
- \path (n6) edge (n7);
- \end{tikzpicture}\\
- Эти деревья имеют высоту соответственно: 4, 3, 3, 3, 4, 5, 6. $\implies$ Для того, чтобы дерево имело минимальную глубину нужно добавить например число 35, а максимальную глубину - 85.
- \newpage
- \section{}
- Пример дерева, в котором последовательная вставка, а затем удаление одного и того же значения в АВЛ-дереве приведет к дереву другой формы:
- Начальное дерево и добавленная пока только как лист вершина (черная).\\
- \begin{tikzpicture} [->,auto,node distance=1.5cm,every node/.style = {align=left, circle, draw=black}]
- \node[] (n1) {5};
- \node[below right of=n1] (n2) {6};
- \node[below left of=n1] (n3) {2};
- \node[below left of=n3] (n4) {1};
- \node[below right of=n3] (n5) {4};
- \node[align = center, below of=n5, draw=white] {Начальное дерево};
- \path (n1) edge (n2);
- \path (n1) edge (n3);
- \path (n3) edge (n4);
- \path (n3) edge (n5);
- \node[] (n1) [right=4cm] {5};
- \node[below right of=n1] (n2) {6};
- \node[below left of=n1] (n3) {2};
- \node[below left of=n3] (n4) {1};
- \node[below right of=n3] (n5) {4};
- \node[below left of=n5, fill=green] (n6) {3};
- \node[align = center, below right of=n6, draw=white] {Дерево с добавленной вершиной 3\\пока в качестве листа};
- \path (n1) edge (n2);
- \path (n1) edge (n3);
- \path (n3) edge (n4);
- \path (n3) edge (n5);
- \path (n5) edge (n6);
- \node[] (n1) [right=8cm] {4};
- \node[below right of=n1] (n2) {5};
- \node[below right of=n2] (n3) {6};
- \node[below left of=n1] (n4) {2};
- \node[below left of=n4] (n5) {1};
- \node[below right of=n4, fill=green] (n6) {3};
- \node[align = center, below of=n6, distance=3cm, draw=white] {После балансировки\\Нарушение было у вершин:\\2 - высота 2\\6 - высота 0\\ 5 - высота 3};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n1) edge (n4);
- \path (n4) edge (n5);
- \path (n4) edge (n6);
- \node[] (n1) [right=13cm] {4};
- \node[below right of=n1] (n2) {5};
- \node[below right of=n2] (n3) {6};
- \node[below left of=n1] (n4) {2};
- \node[below left of=n4] (n5) {1};
- \node[below right of=n4, draw=white] (n6) {};
- \node[align = center, below of=n6, draw=white] {После удаления вершины 3};
- \path (n1) edge (n2);
- \path (n2) edge (n3);
- \path (n1) edge (n4);
- \path (n4) edge (n5);
- \end{tikzpicture}
- \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement