Doubly-Linked Lists — linked lists that can be iterated over in both directions

Singly-Linked Lists — linked lists that can be iterated in one direction

Double-ended Queues — double-ended queue data structure

Sequences — scalable lists

Trash Stacks — maintain a stack of unused allocated memory chunks

Hash Tables — associations between keys and values so that given a key the value can be found quickly

Strings — text buffers which grow automatically as text is added

String Chunks — efficient storage of groups of strings

Arrays — arrays of arbitrary elements which grow automatically as elements are added

Pointer Arrays — arrays of pointers to any type of data, which grow automatically as new elements are added

Byte Arrays — arrays of bytes

Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversing in order

N-ary Trees — trees of data with any number of branches

Quarks — a 2-way association between a string and a unique integer identifier

Keyed Data Lists — lists of data elements which are accessible by a string or GQuark identifier

Datasets — associate groups of data elements with particular memory locations

GVariantType — introduction to the GVariant type system

GVariant — strongly typed value datatype

GVariant Format Strings — varargs conversion of GVariants

GVariant Text Format — textual representation of GVariants

Reference counting — Reference counting types and functions

Reference counted data — Allocated memory with reference counting semantics

Atomically reference counted data — Allocated memory with atomic reference counting semantics