This book presents a wide range of tree structures, from both a computer science and a mathematical point of view. For each of these structures we give the algorithms that allow to visit or update the structure, and discuss their potential uses, either directly (for storing data) or in modelling a variety of situations. We present a mathematical approach to their performances; this is done by the systematic and parallel use of tools from discrete mathematics, probability and analytic combinatorics.

The book is intended for graduate students in mathematics or computer science (or both) and in engineering schools. It is also suitable for anyone with a basic level of scientific knowledge who may have to use tree structures and related algorithms, and who wishes to get a rigorous knowledge of their performance without going back to the original, often specialized, results.