A LiFo dynamic dictionary
Josef Schoenbrunner
Abstract
Data structures that realize a dictionary are characterized by three basic instructions: (1) Insert (a new entry <key,value>). (2) Search by a key, returning the associated value. (3) Delete an entry. Known realizations are hashing schemes and various types of search trees. Time complexity of the fundamental operations is measured as a function of the number of entries n, the (binary) size of a key s is usually not considered. For search trees the expected time as well as the upper limit of time is O( n). "LiFo Dynamic Dictionary" (for short "LiFo Dictionary") is a new implementation, the time limits for "Insert" and for "Search" both are a linear function of the length s of the used key, that is O(s). "LiFo Dictionary" furthermore provides two additional basic operations: (4) "open environment" and (5) "close environment" with a constant time for performing. "Close environment" needs only one assignment by which it restores exactly the same internal situation as before the last call of "open environment". This feature cannot be realized by any of the data structures mentioned above, therefore the prefix LiFo (=last in first out), another name for STACK. This ability is highly suitable for software applications that frequently perform local symbol to value binding throughout multiple levels of environments. E.g. Lisp-Interpreters or D. Knuth's programm are such applications.
Create a lesson
Related papers
The universal measure of nonstochastic objects
Vladimir Vovk
Hyperarithmetic directions can all be exceptional for Marstrand's projection theorem
Noam Greenberg, Daniel Turetsky
Open Problems in Mathematical Logic
George Barmpalias, Su Gao, Jialiang He et al.
An easy proof that there may be no P-points
David Chodounský, Osvaldo Guzmán, Jonathan Verner
Comments on Choiceless Chain Conditions
Constance Bromham, Asaf Karagila
Localic Esakia Duality via Conic Frames
Nesta van der Schaaf