1 # Data Structures |
1 # Data Structures |
2 |
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, |
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. |
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 |
5 |
|
6 Another special collection is the [key/value-list](kv_list.h.md) that combines both the list and the map interfaces. |
|
7 |
6 Additionally, UCX provides an abstraction for [iterators](iterator.h.md) that work with all collection types, and |
8 Additionally, UCX provides an abstraction for [iterators](iterator.h.md) that work with all collection types, and |
7 plain C arrays. |
9 plain C arrays. |
8 |
10 |
9 The design goal of this API was to provide high level abstractions (functions in lowerCamelCase) and low level |
11 The design goal of this API was to provide high-level abstractions (functions in lowerCamelCase) and low-level |
10 implementations (functions in snake_case). |
12 implementations (functions in snake_case). |
11 This way you can freely choose whether to use the predefined implementations for the various collection types, |
13 This way you can freely choose whether to use the predefined implementations for the various collection types |
12 or to implement your own collections using the low level API. |
14 or to implement your own collections using the low-level API. |