Index handler with list of unused: Difference between revisions
Jump to navigation
Jump to search
m (Weihe moved page Index handler with unused list to Index handler with list of unused) |
No edit summary |
||
Line 2: | Line 2: | ||
'''Abstract data structure:''' | '''Abstract data structure:''' [[Index handler]] | ||
'''Implementation invariant:''' | '''Implementation invariant:''' | ||
Line 15: | Line 10: | ||
== Methods == | == Methods == | ||
# The constructor takes <math>N</math> as an argument, creates <math>A</math> and <math>U</math>, and stores all potential keys <math>1,\ldots,N</math> in <math>U</math>. | # The constructor takes <math>N</math> as an argument, creates <math>A</math> and <math>U</math>, and stores all potential keys <math>1,\ldots,N</math> in <math>U</math>. |
Revision as of 13:58, 20 October 2014
Abstract view
Abstract data structure: Index handler
Implementation invariant:
- There is an array [math]\displaystyle{ A }[/math] with index range [math]\displaystyle{ 1,...,N }[/math], and the component type is the value type of the map.
- There is a set [math]\displaystyle{ U }[/math] (for unused) of natural numbers.
- For each [math]\displaystyle{ i\in\{1,...,N_\text{max}\} }[/math] not in [math]\displaystyle{ U }[/math], [math]\displaystyle{ A[i] }[/math] is the value associated with key [math]\displaystyle{ i }[/math].
Methods
- The constructor takes [math]\displaystyle{ N }[/math] as an argument, creates [math]\displaystyle{ A }[/math] and [math]\displaystyle{ U }[/math], and stores all potential keys [math]\displaystyle{ 1,\ldots,N }[/math] in [math]\displaystyle{ U }[/math].
- The method for inserting a new value extracts a key [math]\displaystyle{ i }[/math] from [math]\displaystyle{ U }[/math], stores the value at <mah>A[i]</math>and returns [math]\displaystyle{ i }[/math].
- The method to look up a value for a given key [math]\displaystyle{ i }[/math] returns [math]\displaystyle{ A[i] }[/math].
- The method to remove a key re-inserts the key in [math]\displaystyle{ U }[/math].