145 lines
6.5 KiB
TeX
145 lines
6.5 KiB
TeX
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
%% I, the copyright holder of this work, release this work into the
|
|||
|
%% public domain. This applies worldwide. In some countries this may
|
|||
|
%% not be legally possible; if so: I grant anyone the right to use
|
|||
|
%% this work for any purpose, without any conditions, unless such
|
|||
|
%% conditions are required by law.
|
|||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
|||
|
\documentclass[
|
|||
|
printed, %% The `digital` option enables the default options for the
|
|||
|
%% digital version of a document. Replace with `printed`
|
|||
|
%% to enable the default options for the printed version
|
|||
|
%% of a document.
|
|||
|
color, %% Uncomment these lines (by removing the %% at the
|
|||
|
%% beginning) to use color in the digital version of your
|
|||
|
%% document
|
|||
|
table, %% The `table` option causes the coloring of tables.
|
|||
|
%% Replace with `notable` to restore plain LaTeX tables.
|
|||
|
oneside, %% The `twoside` option enables double-sided typesetting.
|
|||
|
%% Use at least 120 g/m² paper to prevent show-through.
|
|||
|
%% Replace with `oneside` to use one-sided typesetting;
|
|||
|
%% use only if you don’t have access to a double-sided
|
|||
|
%% printer, or if one-sided typesetting is a formal
|
|||
|
%% requirement at your faculty.
|
|||
|
nolof, %% The `lof` option prints the List of Figures. Replace
|
|||
|
%% with `nolof` to hide the List of Figures.
|
|||
|
nolot, %% The `lot` option prints the List of Tables. Replace
|
|||
|
%% with `nolot` to hide the List of Tables.
|
|||
|
%% More options are listed in the user guide at
|
|||
|
%% <http://mirrors.ctan.org/macros/latex/contrib/fithesis/guide/mu/fi.pdf>.
|
|||
|
]{fithesis3}
|
|||
|
%% The following section sets up the locales used in the thesis.
|
|||
|
\usepackage[resetfonts]{cmap} %% We need to load the T2A font encoding
|
|||
|
\usepackage[T1,T2A]{fontenc} %% to use the Cyrillic fonts with Russian texts.
|
|||
|
\usepackage[
|
|||
|
main=english, %% By using `czech` or `slovak` as the main locale
|
|||
|
%% instead of `english`, you can typeset the thesis
|
|||
|
%% in either Czech or Slovak, respectively.
|
|||
|
english, czech, slovak %% The additional keys allow
|
|||
|
]{babel} %% foreign texts to be typeset as follows:
|
|||
|
%%
|
|||
|
%% \begin{otherlanguage}{german} ... \end{otherlanguage}
|
|||
|
%% \begin{otherlanguage}{russian} ... \end{otherlanguage}
|
|||
|
%% \begin{otherlanguage}{czech} ... \end{otherlanguage}
|
|||
|
%% \begin{otherlanguage}{slovak} ... \end{otherlanguage}
|
|||
|
%%
|
|||
|
%% For non-Latin scripts, it may be necessary to load additional
|
|||
|
%% fonts:
|
|||
|
\usepackage{paratype}
|
|||
|
\def\textrussian#1{{\usefont{T2A}{PTSerif-TLF}{m}{rm}#1}}
|
|||
|
%%
|
|||
|
%% The following section sets up the metadata of the thesis.
|
|||
|
\thesissetup{
|
|||
|
date = \the\year/\the\month/\the\day,
|
|||
|
university = mu,
|
|||
|
faculty = fi,
|
|||
|
type = bc,
|
|||
|
author = Matej Focko,
|
|||
|
gender = m,
|
|||
|
advisor = {prof. RNDr. Ivana Černá, CSc.},
|
|||
|
title = {Rank-Balanced Trees},
|
|||
|
TeXtitle = {Rank-Balanced Trees},
|
|||
|
keywords = {algorithms, data structures, rank, trees, balanced trees, study material, visualization, ...},
|
|||
|
TeXkeywords = {algorithms, data structures, rank, trees, balanced trees, study material, visualization, \ldots},
|
|||
|
abstract = {%
|
|||
|
In the thesis we demonstrate usage of a rank for implementing balanced binary-search trees
|
|||
|
and algorithms related to a specific rank-balanced tree, the weak AVL tree. First part
|
|||
|
of the thesis consists of description of the rank-balanced tree followed by a comparison
|
|||
|
to other balanced trees that can be implemented using rank, diagrams and pseudo-codes related
|
|||
|
to the weak AVL tree. We also present an implementation of the weak AVL tree in Python, tested with a
|
|||
|
property-based testing. The final part of the thesis is a web-page that allows performing operations
|
|||
|
on the weak AVL tree with animations and step-by-step walk-through of a pseudo-code.
|
|||
|
},
|
|||
|
thanks = {%
|
|||
|
\textit{TBD}
|
|||
|
},
|
|||
|
bib = bibliography.bib,
|
|||
|
%% Uncomment the following line (by removing the %% at the
|
|||
|
%% beginning) and replace `assignment.pdf` with the filename
|
|||
|
%% of your scanned thesis assignment.
|
|||
|
%% assignment = assignment.pdf,
|
|||
|
}
|
|||
|
\usepackage{makeidx} %% The `makeidx` package contains
|
|||
|
\makeindex %% helper commands for index typesetting.
|
|||
|
%% These additional packages are used within the document:
|
|||
|
\usepackage{paralist} %% Compact list environments
|
|||
|
\usepackage{amsmath} %% Mathematics
|
|||
|
\usepackage{amsthm}
|
|||
|
\usepackage{amsfonts}
|
|||
|
\usepackage{url} %% Hyperlinks
|
|||
|
\usepackage{tabularx} %% Tables
|
|||
|
\usepackage{tabu}
|
|||
|
\usepackage{booktabs}
|
|||
|
\usepackage[vlined,longend,linesnumbered]{algorithm2e}
|
|||
|
\usepackage{listings} %% Source code highlighting
|
|||
|
\lstset{
|
|||
|
basicstyle = \ttfamily,
|
|||
|
identifierstyle = \color{black},
|
|||
|
keywordstyle = \color{blue},
|
|||
|
keywordstyle = {[2]\color{cyan}},
|
|||
|
keywordstyle = {[3]\color{olive}},
|
|||
|
stringstyle = \color{teal},
|
|||
|
commentstyle = \itshape\color{magenta},
|
|||
|
breaklines = true,
|
|||
|
}
|
|||
|
\usepackage{floatrow} %% Putting captions above tables
|
|||
|
\floatsetup[table]{capposition=top}
|
|||
|
\usepackage{hyperref}
|
|||
|
|
|||
|
\usepackage[x11names, svgnames, rgb]{xcolor}
|
|||
|
\usepackage{tikz}
|
|||
|
\usetikzlibrary{decorations,arrows,shapes}
|
|||
|
|
|||
|
\SetKwProg{Fn}{function}{ is}{end}
|
|||
|
\SetKwProg{Proc}{procedure}{ is}{end}
|
|||
|
|
|||
|
\newcommand{\avlDeleteRebalance}{\hyperref[algorithm:avl:deleteRebalance]{\texttt{deleteRebalance}}}
|
|||
|
\newcommand{\avlDeleteFixNode}{\hyperref[algorithm:avl:deleteFixNode]{\texttt{deleteFixNode}}}
|
|||
|
\newcommand{\avlDeleteRotate}{\hyperref[algorithm:avl:deleteRotate]{\texttt{deleteRotate}}}
|
|||
|
|
|||
|
\newcommand{\findParentNode}{\hyperref[algorithm:findParentNode]{\texttt{findParentNode}}}
|
|||
|
|
|||
|
\newcommand{\wavlInsertRebalance}{\hyperref[algorithm:wavl:insertRebalance]{\texttt{insertRebalance}}}
|
|||
|
\newcommand{\wavlFixZeroChild}{\hyperref[algorithm:wavl:fix0Child]{\texttt{fix0Child}}}
|
|||
|
|
|||
|
\newcommand{\wavlDeleteRebalance}{\hyperref[algorithm:wavl:deleteRebalance]{\texttt{deleteRebalance}}}
|
|||
|
\newcommand{\wavlBottomUpDelete}{\hyperref[algorithm:wavl:bottomUpDelete]{\texttt{bottomUpDelete}}}
|
|||
|
\newcommand{\wavlFixDelete}{\hyperref[algorithm:wavl:fixDelete]{\texttt{fixDelete}}}
|
|||
|
|
|||
|
\begin{document}
|
|||
|
|
|||
|
\include{introduction}
|
|||
|
\include{self_balancing_search_trees}
|
|||
|
\include{rank_balanced_trees}
|
|||
|
\include{wavl_trees}
|
|||
|
\include{implementation}
|
|||
|
\include{visualization}
|
|||
|
\include{summary}
|
|||
|
|
|||
|
\appendix %% Start the appendices.
|
|||
|
\chapter{An appendix}
|
|||
|
Here you can insert the appendices of your thesis.
|
|||
|
|
|||
|
\end{document}
|