|
Data Structures and Algorithms
with Object-Oriented Design Patterns in Ruby |
The elements of a multi-dimensional array are accessed
using the [] and []= methods
of the MultiDimensionalArray class.
For example,
you can access the
element
of a three-dimensional array a like this:
value = a[i,j,k]which invokes the [] method with the array (i,j,k) as the index expression. Similarly, you can modify the
a[i,j,k] = valuewhich invokes the []= method with the array (i,j,k) as the index expression.
Program
shows how
that [] and []= methods
are both implemented using a getOffset method.
The getOffset method takes an array of n indices
and computes the position of the corresponding element
in the one-dimensional array according to Equation
.
This computation takes O(n) time in the worst case,
where n is the number of dimensions.
Consequently, the running times of the [] and []=
methods are also O(n).

Program: MultiDimensionalArray class [] and []= methods.