Data Structures and Algorithms
with Object-Oriented Design Patterns in C#![]() ![]() ![]() ![]() ![]() |
Program defines two more operations
of the OrderedListAsArray class,
the FindPosition method and an indexer
this[int].
The FindPosition method takes as its argument
a ComparableObject.
The purpose of this method is to search the ordered list
for an item which matches the object,
and to return its position in the form of an object that implements
the Cursor interface.
In this case, the result is an instance of the private MyCursor class.
Program: OrderedListAsArray class FindPosition method and this[int] indexer.
The search algorithm used in FindPosition is identical to that
used in the Find method (Program ).
The FindPosition uses the overloaded == operator to locate
a contained object which is equal to the search target.
Note that if no match is found,
the offset is set to the value count,
which is one position to the right of the last item in the ordered list.
The running time of FindPosition is identical to that of
Find:
, where
.
The indexer defined in Program
provides a get accessor that
takes an int argument and returns the object
in the ordered list at the specified position.
In this case, the position is specified using
an integer-valued subscript expression.
The implementation of this method is trivial--it simply indexes into the array.
Assuming the specified offset is valid,
the running time of this method is O(1).