mirror of
https://github.com/mfocko/blog.git
synced 2024-09-20 10:26:55 +02:00
Matej Focko
a9f9205805
Signed-off-by: Matej Focko <mfocko@redhat.com> Signed-off-by: Matej Focko <me@mfocko.xyz>
32 lines
2.3 KiB
Markdown
32 lines
2.3 KiB
Markdown
---
|
||
title: Introduction
|
||
description: |
|
||
Summing up the contents of the „Rank-Balanced Trees“ chapter.
|
||
tags:
|
||
- balanced trees
|
||
---
|
||
|
||
Data structures have become a regular part of the essential toolbox for
|
||
problem-solving. In many cases, they also help to improve the existing algorithm's
|
||
performance, e.g. using a priority queue in _Dijkstra's algorithm for the shortest_
|
||
_path_. We will mainly discuss the implementation of a set.
|
||
|
||
Currently, the most commonly used implementations of sets use hash tables, but we
|
||
will talk about another common alternative, implementation via self-balancing
|
||
search trees. Compared to a hash table, they provide consistent time complexity,
|
||
but at the cost of a requirement for ordering on the elements. The most implemented
|
||
self-balancing binary tree is a _red-black tree_, as described by _Guibas and_
|
||
_Sedgewick_[^1]. Among other alternatives, we can find (non-binary) _B-tree_[^2]
|
||
and _AVL tree_[^3].
|
||
|
||
We will start by discussing the properties of the AVL tree[^3], then we will
|
||
follow up on that with a definition of a _rank-balanced tree_, including
|
||
implementation of algorithms for implementing commonly known trees such as red-black
|
||
tree and AVL tree using the given representation. Afterwards we will delve into
|
||
the details of the _Weak AVL (WAVL) tree_[^4] that has relaxed requirements
|
||
compared to the AVL tree.
|
||
|
||
[^1]: GUIBAS, Leo J.; SEDGEWICK, Robert. A dichromatic framework for balanced trees. In: _19th Annual Symposium on Foundations of Computer Science (sfcs 1978)_. 1978, pp. 8–21. Available from doi: [10.1109/SFCS.1978.3](https://doi.org/10.1109/SFCS.1978.3).
|
||
[^2]: BAYER, R.; MCCREIGHT, E. Organization and Maintenance of Large Ordered Indices. In: _Proceedings of the 1970 ACM SIGFIDET (Now SIGMOD) Workshop on Data Description, Access and Control_. Houston, Texas: Association for Computing Machinery, 1970, pp. 107–141. SIGFIDET ’70. isbn 9781450379410. Available from doi: [10.1145/1734663.1734671](https://doi.org/10.1145/1734663.1734671).
|
||
[^3]: ADELSON-VELSKIJ, Georgij; LANDIS, Evgenij. An algorithm for the organization of information. _Doklady Akad. Nauk SSSR_. 1962, vol. 146, pp. 263–266.
|
||
[^4]: HAEUPLER, Bernhard; SEN, Siddhartha; TARJAN, Robert E. Rank-Balanced Trees. _ACM Trans. Algorithms_. 2015, vol. 11, no. 4. issn 1549-6325. Available from doi: [10.1145/2689412](https://doi.org/10.1145/2689412).
|