scispace - formally typeset
Search or ask a question

Showing papers on "List update problem published in 1978"


Journal ArticleDOI
TL;DR: A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool.
Abstract: A real-time list processing system is one in which the time required by the elementary list operations (e.g. CONS, CAR, CDR, RPLACA, RPLACD, EQ, and ATOM in LISP) is bounded by a (small) constant. Classical implementations of list processing systems lack this property because allocating a list cell from the heap may cause a garbage collection, which process requires time proportional to the heap size to finish. A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool. The program is small and requires no time-sharing interrupts, making it suitable for microcode. Finally, the system requires the same average time, and not more than twice the space, of a classical implementation, and those space requirements can be reduced to approximately classical proportions by compact list representation. Arrays of different sizes, a program stack, and hash linking are simple extensions to our system, and reference counting is found to be inferior for many applications.

630 citations


Journal ArticleDOI
TL;DR: In [3], R.L. Rivest presents a set of methods for dynamically reordering a sequential list containing N
Abstract: In [3], R.L. Rivest presents a set of methods for dynamically reordering a sequential list containing N records in order to increase search efficiency. The method Ai (for i between 1 and N) performs the following operation each time that a record R has been successfully retrieved: Move R forward i positions in the list, or to the front of the list if it was in a position less than i. The method A1 is called the transposition method, and the method AN-1 is called the move-to-front method.

19 citations


Journal ArticleDOI
Douglas W. Clark1
TL;DR: An algorithm is presented for copying an arbitrarily linked list structure into a block of contiguous storage locations without destroying the original list, which is shown to be significantly faster than Fisher's algorithm, the fastest previous linear-time algorithm for the same problem.
Abstract: 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.

9 citations


Journal ArticleDOI
TL;DR: Evaluations through analysis and simulation show that, for some realistic data base systems, there exist non-degenerate hybrid list organizations which are indeed superior in performance.

8 citations


Journal ArticleDOI
Jr. Henry S. Warren1
TL;DR: This paper gives three relatively simple algorithms for computing node lists of a directed graph such that every simple path in the graph is a subsequence of the node list.

3 citations


Journal ArticleDOI
TL;DR: Under conditions discussed below, it is possible to find the predecessor in an ordered list with time O(N 1 2 ) and no additional space.

3 citations