Open Graph Drawing Framework
current version:
v.2015.05 (Baobab)

Basic Data Structures

All basic OGDF data structures are C++ templates allowing arbitrary element-types.

Simple Data Structures
Tuple2, Tuple3, Tuple4 simple structures combining multiple (2-4) data elements into one large unit. Useful when using tuples as data elements of lists, etc.
Array dynamic array which allows resizing, size queries, and arbitrary array bounds. Supports bound checking in Debug mode
Array2D 2-dimensional variant of Array
List doubly-linked list; allows constant time size queries
ListPure doubly-linked list
SList singly-linked list; allows constant time size queries
SListPure singly-linked list
Buffers, Stacks, Queues
ArrayBuffer array-based stack which allows traditional array operations and supports resizing
Queue list-based queue
Stack list-based stack
BoundedQueue array-based, fixed-size queue
BoundedStack array-based, fixed-size stack
Heaps, Priority Queues
BinaryHeap binary heap implementing a full priority queue interface, i.e., key/data separation, decrease key, etc.
BinaryHeapSimple binary heap tuned for efficiency on a smaller interface: key=data (i.e. data elements are themselves comparable), no decrease key operation
Top10Heap a variant of BinaryHeapSimple which always holds only the X (e.g. X=10) elements with the highest keys
Hashing and Skiplists
Hashing dynamically resizing hash-table, using open hashing (aka. hashing with chaining)
HashArray a simplified Hashing interface offering array-syntax
HashArray2D 2-dimensional variant of HashArray
Skiplist randomized skip list (the stored elements are pointers)
Multithreading Support
Barrier a barrier synchronization primitive; all threads wait, until all threads have executed the barrier
CriticalSection a critical section primitive; guards a code section that can only be executed by one thread at a time (other threads must wait)
Mutex a mutex synchronization primitive
Thread system-independent realization of a thread for parallel programming
tech/basicds.txt · Last modified: 2014/12/16 12:20 (external edit)
This page is driven by DokuWiki