The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
An empirical study of list structure in Lisp
Communications of the ACM
A bounded storage algorithm for copying cyclic structures
Communications of the ACM
An efficient list-moving algorithm using constant workspace
Communications of the ACM
Copying cyclic list structures in linear time using bounded workspace
Communications of the ACM
Copying list structures using bounded workspace
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
List structure: measurements, algorithms, and encodings.
List structure: measurements, algorithms, and encodings.
A bibliography on garbage collection and related topics
ACM SIGPLAN Notices
Garbage Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
A linear algorithm for copying binary trees using bounded workspace
Communications of the ACM
The evolution of list-copying algorithms and the need for structured program verification
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Hi-index | 48.24 |
An algorithm is presented for copying an arbitrarily linked list structure into a block of contiguous storage locations without destroying the original list. Apart from a fixed number of program variables, no auxillary storage, such as a stack, is used. The algorithm needs no mark bits and operates in linear time. It is shown to be significantly faster than Fisher's algorithm, the fastest previous linear-time algorithm for the same problem. Its speed comes mainly from its efficient list-traversal technique, which folds the processing stack into the structure being built, and from its classification of list cells into nine types, which enables processing operations to be optimized for each type.