Index handler: Difference between revisions

From Algowiki
Jump to navigation Jump to search
No edit summary
Line 12: Line 12:
'''Name:''' reserve index
'''Name:''' reserve index


'''Parameter:''' A value <math>V\in\mathcal{V}</math>.
'''Argument:''' A value <math>V\in\mathcal{V}</math>.


'''Precondition:''' <math>|I|<N</math>.
'''Precondition:''' <math>|I|<N</math>.
Line 24: Line 24:
'''Name:''' release index
'''Name:''' release index


'''Parameter:''' An integral number <math>i</math>.
'''Argument:''' An integral number <math>i</math>.


'''Precondition:''' <math>i\in I</math>.
'''Precondition:''' <math>i\in I</math>.


'''Postcondition:''' <math>i</math> is extracted from <math>i</math> and the associated value removed.
'''Postcondition:''' <math>i</math> is extracted from <math>i</math> and the associated value removed.
== Method ==
'''Name:'' get value
'''Argument:''' An integral number <math>i</math>.
'''Precondition:''' <math>i\in I</math>.
'''Return value:''' The value currently associated with <math>i</math>.,


== Method ==
== Method ==
Line 34: Line 44:
'''Name:''' change value
'''Name:''' change value


'''Parameter:''' An integral number <math>i</math> and a value <math>V\in\mathcal{V}</math>.
'''Argument:''' An integral number <math>i</math> and a value <math>V\in\mathcal{V}</math>.


'''Precondition:''' <math>i\in I</math>.
'''Precondition:''' <math>i\in I</math>.


'''Postcondition:''' The value associated with <math>i</math> is overwritten by <math>V</math>.
'''Postcondition:''' The value currently associated with <math>i</math> is overwritten by <math>V</math>.

Revision as of 14:14, 20 October 2014

Representation invariant

This abstract data structure is generic and parameterized by some value type [math]\displaystyle{ \mathcal{V} }[/math]. An object of an implementation of this abstract data structure is repesented by:

  1. A positive integral number [math]\displaystyle{ N }[/math].
  2. A subset [math]\displaystyle{ I }[/math] of [math]\displaystyle{ \{1,\ldots,N\} }[/math], the currently used indexes.
  3. A mapping [math]\displaystyle{ I\rightarrow\mathcal{V} }[/math].

Remark: This abstact data structure may be viewed as a specific, quite restricted type of map.

Method

Name: reserve index

Argument: A value [math]\displaystyle{ V\in\mathcal{V} }[/math].

Precondition: [math]\displaystyle{ |I|\lt N }[/math].

Return value: One of the indexes not in [math]\displaystyle{ I }[/math].

Postcondition: The returned index is inserted in [math]\displaystyle{ I }[/math] and associated with [math]\displaystyle{ V }[/math].

Method

Name: release index

Argument: An integral number [math]\displaystyle{ i }[/math].

Precondition: [math]\displaystyle{ i\in I }[/math].

Postcondition: [math]\displaystyle{ i }[/math] is extracted from [math]\displaystyle{ i }[/math] and the associated value removed.

Method

'Name: get value

Argument: An integral number [math]\displaystyle{ i }[/math].

Precondition: [math]\displaystyle{ i\in I }[/math].

Return value: The value currently associated with [math]\displaystyle{ i }[/math].,

Method

Name: change value

Argument: An integral number [math]\displaystyle{ i }[/math] and a value [math]\displaystyle{ V\in\mathcal{V} }[/math].

Precondition: [math]\displaystyle{ i\in I }[/math].

Postcondition: The value currently associated with [math]\displaystyle{ i }[/math] is overwritten by [math]\displaystyle{ V }[/math].