A SPARSE TABLE IMPLEMENTATION OF PRIORITY QUEUES by Alon Itai ~t), Alan G. Konheim c2~ and Michael Rodeh (3~ 1. INTRODUCTION Priority queues have been defined in several ways. In this paper a priority queue is a data structure on which the following operations can be executed: Search(x), Insert(x), Delete(x), Min, Next(x), Scan. There are numerous implementations of priority queues, in which each of the first five operations requires no more than O(log n) time (n is the number of keys currently in the queue). All of these implementations use trees: 2-3 trees [AHU], AVL-trees, weight balanced trees [RND], binomial trees IV] and require large overhead, both in time and in space. In many cases the algorithms devote much of their running time and storage manipulating the priority queue, often rendering a theoretically efficient algorithm to be infeasible or inefficient for all practical purposes. An implementation of priority queues by means of sparse tables is presented in this paper. Data is stored in a linear array and requires only a single pointer. Insertion requires three operations: • searching • moving - to locate the table address at which a record will be inserted, - shifting of records in the table to free space for the record to be inserted, and (~ Computer Science Department, Techrtion- Israel Institute of Technology, Haifa, Israel. (2~ Mathematical Sciences Department, IBM Thomas J. Watson Research Center. (3) IBM Research, San Jose Laboratory. On sabbatical from IBM Israel Scientific Center, Technion City, Haifa, Israel.