hash * datastructure * for example text processing * any keys * balancing search and direct look-up * vs arrays * different implementations make a difference (running time, memory usage, etc) -------------------- red black tree * binary search tree. Best if they are balanced * RB tree: add color to BS tree to keep them balanced * operations (insert delete) like BS tree, but with additional steps to keep tree balanced