# Variants of Trees

In the previous chapters, you learned about many data structures, starting with simple ones such as arrays. Now, it is time for you to get to know a significantly more complex group of data structures, namely **trees**.

At the beginning of this chapter, a **basic tree** will be presented, together with its implementation in the C# language, and with some examples showing it in action. Then, a **binary tree** will be introduced, with a detailed description of its implementation and an example of its application. A **binary search tree** (**BST**) is another tree variant and is one of the most popular types of trees, used in many algorithms. You will also cover **self-balancing trees**, namely **AVL** and **red-black trees** (**RBTs**). Then, you will see a **trie** as a specialized data structure for performing operations on strings. The remaining part of the chapter is dedicated to a short introduction to the topic of **heaps**.

Arrays, lists, stacks, queues, dictionaries, sets, and now trees. Are you...