A method of reclaiming memory space allocated to a data structure
comprising data objects (910-960) linked by identifying pointers, in
which the memory allocated to data objects is reclaimed using two
systems: a first system (980), by which a selected part of the data
structure is traversed by following the pointers, one of at least two
identifiers being allocated to the data objects, a first identifier which
indicates that the data object has been traversed so that the data
objects referenced by the pointers of that data object have been
identified, and a second identifier which indicates that the data object
is referenced by a pointer, but the data object has not yet been
traversed; and a second system (990), by which an individual data object
is selected for deletion to enable the associated memory space to be
reclaimed. The second system (990) reads the first system identifier for
the individual data object, and if the first identifier is present
deletes the data object thereby reclaiming the associated memory space.
If the second identifier is present, it allocates a third identifier,
where the first system (980) operates to reclaim the memory space
allocated to data objects having the third identifier.