Padded lists revisited
We study a data structure ${\bf L}$ referred to variously as a padded list, controlled density array or sparse table containing records $\{ R_i \} $ each uniquely identified by a key $\{ k(R_i )\} $. ${\bf L}$ is required to support the operations Search $({\bf L},k)$, Insert $({\bf L},k)$ and Delet...
Gespeichert in:
Veröffentlicht in: | SIAM journal on computing 1987-12, Vol.16 (6), p.1073-1114 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | We study a data structure ${\bf L}$ referred to variously as a padded list, controlled density array or sparse table containing records $\{ R_i \} $ each uniquely identified by a key $\{ k(R_i )\} $. ${\bf L}$ is required to support the operations Search $({\bf L},k)$, Insert $({\bf L},k)$ and Delete $({\bf L},k)$ to search, insert and delete a record with key $k$. To optimize Search $({\bf L},k)$, records are stored with their keys in sorted order. If the order of the keys is to be maintained under insertion, records currently in ${\bf L}$ must be moved to free space. To improve the efficiency of Insert $({\bf L},k)$, records are stored in a circular buffer with "gaps" so that insertion necessitates moving only records up to the next gap. The array is expanded and contracted during a sequence of insertions and deletions depending upon the current number of gaps. In this paper we assess the amount of work required to insert a sequence of records. |
---|---|
ISSN: | 0097-5397 1095-7111 |
DOI: | 10.1137/0216069 |