1 # Data Structures
2
3 UCX provides a [linked list](linked_list.h.md) and [array list](array_list.h.md) implementation over a common [list](list.h.md) interface,
4 as well as a [hash nap](hash_map.h.md) implementation over a [map](map.h.md) interface, and a basic [tree](tree.h.md) implementation.
5
6 Another special collection is the [key/value-list](kv_list.h.md) that combines both the list and the map interfaces.
7
8 Additionally, UCX provides an abstraction for [iterators](iterator.h.md) that work with all collection types, and
9 plain C arrays.
10
11 The design goal of this API was to provide high-level abstractions (functions in lowerCamelCase) and low-level
12 implementations (functions in snake_case).
13 This way you can freely choose whether to use the predefined implementations for the various collection types
14 or to implement your own collections using the low-level API.
15