The component provides implementations of various Abstract Datatypes (ADT). Those are data containers with a well-defined interface but variable implementation. All the classes are built around the Variant datatype of Gambas.

Author Tobias Boege.


AvlTree An AVL tree is a self-balancing binary search tree. This means that we can guarantee insertion, removal and retrieval of data in O(log n) time, no matter what data you have in the tree. Its interface is similar to that of a Collection.
Circular A Circular buffer, or Circular for short, is a fixed-size buffer with one read and one write pointer. When data is read/written, the proper pointer is moved forward independently of the other one. When the end of the buffer is reached, the pointer wraps around to the beginning. Thus, old never-read values can be overwritten.
Deque The Deque (double-ended queue) is the backend for the Queue and Stack classes.
Heap This class implements a dynamic heap data structure. It can be a MinHeap or a MaxHeap, depending on what mode you specify on construction.
List This class implements a circular doubly-linked list, i.e. you have Variants linked together and can traverse them in either direction (thus doubly-linked). The next ancestor of the last element in the list will be the first and vice versa (thus circular).
PrioQueue A PrioQueue, short for Priority Queue, is a more general type of Queue where all inserted elements are not strictly linearly queued. Instead they are first grouped by their priority index. The greater that index, the more important and thus the closer to the beginning of the PrioQueue this group is enqueued. With each group, the usual FIFO semantics of a Queue apply. So that, in effect, all elements can be ordered linearly again.
Queue A Queue is a FIFO datatype: all elements follow the pattern "first in, first out".
Stack A Stack is a LIFO datatype. It follows the access patterns of "last in, first out". (In some cultures this is also known as FILO "first in, last out")
Trie This class implements a Patricia Trie. You can learn about its semantics from Wikipedia.
TriePrefix This class provides a read-only view of part of a Trie. It lets you examine keys with a common prefix.