This commit is contained in:
Matej Focko 2024-12-09 10:28:41 +00:00 committed by GitHub
commit fb01ded8ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 131 additions and 0 deletions

View file

@ -0,0 +1,33 @@
---
id: avl
slug: /rank-balanced-trees/avl
title: AVL tree
description: |
Explaining the idea behind the AVL tree.
tags:
- balanced trees
- avl tree
last_update:
date: 2024-06-30
---
Let's start by checking out the AVL tree. We will cover the historic context
first, then go through the idea behind it and finally we will be able to discuss
the insertion and deletion corrections that are used to maintain the property of
a balanced tree.
## Historic context
_TODO_
## Idea
_TODO_
## Insertion
_TODO_
## Deletion
_TODO_

View file

@ -0,0 +1,12 @@
---
id: core
slug: /rank-balanced-trees/core
title: Rank-balanced trees
description: |
Explaining the idea behind the rank-balanced tree.
tags:
- balanced trees
- rank-balanced trees
last_update:
date: 2024-06-30
---

View file

@ -0,0 +1,13 @@
---
id: avl-with-rank
slug: /rank-balanced-trees/avl-with-rank
title: AVL with rank
description: |
Implementing the AVL tree via rank-balanced tree.
tags:
- balanced trees
- rank-balanced trees
- avl tree
last_update:
date: 2024-06-30
---

View file

@ -0,0 +1,13 @@
---
id: rb-with-rank
slug: /rank-balanced-trees/rb-with-rank
title: Red-black tree with rank
description: |
Implementing the red-black tree via rank-balanced tree.
tags:
- balanced trees
- rank-balanced trees
- red-black trees
last_update:
date: 2024-06-30
---

View file

@ -0,0 +1,15 @@
---
id: avl-relaxations
slug: /rank-balanced-trees/avl-relaxations
title: Relaxations of the AVL tree
description: |
Implementing the WAVL and rAVL trees.
tags:
- balanced trees
- rank-balanced trees
- avl tree
- wavl tree
- ravl tree
last_update:
date: 2024-06-30
---

View file

@ -0,0 +1,45 @@
---
id: index
slug: /rank-balanced-trees/
title: Rank-Balanced Trees
description: |
Explaining the rank-balanced trees. The web version of my bachelor thesis.
tags:
- balanced trees
- red-black trees
- avl tree
- wavl tree
last_update:
date: 2024-06-08
---
Data structures have become a regular part of the essential toolbox for
problem-solving. In many cases, they also help to improve the existing
algorithms performance, e.g., using a priority queue in _Dijkstras algorithm_
_for the shortest path_. This thesis 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 focus on the _Weak AVL_ (_WAVL_) _tree_[^4] that is a relaxed variant of
the AVL tree, but still provides better balancing than a red-black tree.
We will start by describing the AVL tree, then we will introduce the idea
of a _rank-balanced tree_. Given this insight we will be able to explore various
implementations of aforementioned trees using the rank-balanced tree. At the end
we will focus on the _Weak AVL tree_
[^1]: [A dichromatic framework for balanced trees.](https://doi.org/10.1109/SFCS.1978.3)
[^2]: [Organization and Maintenance of Large Ordered Indices.](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. 263266.
[^4]: [Rank-Balanced Trees](https://doi.org/10.1145/2689412)