-
-
Notifications
You must be signed in to change notification settings - Fork 0
Concepts: ranges
This document contains the API for the list-toolkit library.
Ranges are collections of nodes. They are used to iterate over a portion of a list, to extract or to remove nodes.
A range is defined as a simple "naked" object with the following properties:
-
from: the first node in the range -
to: the last node in the range -
list: the list that owns the range (optional)
Ranges are inclusive: from and to are included in the range. The direction of a range
is from from to to using the nextName property defined by a list.
If from or to are not specified the interpretation is up to a specific method that uses the range.
In most cases the missing from is assumed the beginning of the list and
the missing to is assumed the end of the list.
Both from and to can be specified as nodes or pointers.
There are two types of ranges: range (node range) and ptrRange (pointer range).
A node range is defined by two nodes, while a pointer range is defined by
a pointer as from and a node as to. The initial from pointer should have a valid previous node
(see Concepts: pointers for more information). Pointer ranges are used with
singly linked lists only.
If from is missing in a pointer range usually fromPtr is assumed by most methods.
Note that ExtSList and ExtValueSList do not provide fromPtr by default.
Concepts
DLL: doubly linked lists
SLL: singly linked lists
Unrolled list
List utilities
Caches
Heaps
Queue, Stack, and Deque
Trees
Skip list
Timer wheel
Free list