Professional Documents
Culture Documents
STRUCTURE
ARRAYS
(CHAPTER 3)
Outline
Introduction
Array Operations
Number of Elements in an array
One-dimensional array
Two dimensional array
Multi-dimensional arrays
Representation of Arrays in Memory
One-dimensional array
Two-dimensional arrays
Three dimensional arrays
N-dimensional array
Applications
Sparse matrix
Ordered lists
ADT for arrays
INTRODUCTION
DEFINITION
An array is an ADT whose objects are sequence of elements of the
same type and the two operations performed on it are store and
retrieve.
INTRODUCTION
ARRAY OPERATIONS
• An array when viewed as a data structure supports only
two operations:
• storage of values
• writing into an array (STORE (a, i, e) ) and,
• retrieval of values
• reading from an array ( RETRIEVE (a, i) )
• Arrays could be of one-dimension, two dimension, three
dimension or in general multi-dimension.
• * a is an array, i is the index and e is the element to be stored in the array
INTRODUCTION
ARRAY OPERATIONS
• For example, if A is an array of 5 elements, the fig 3.2 illustrates
the operations performed on A
NUMBER OF ELEMENTS IN AN ARRAY
ONE-DIMENSIONAL ARRAY
• Definition of one-dimensional array A:
• A[l : u]
• Size of the array is u.
• The elements are A[1], A[2],….,A[u-1], A[u].
• where l is the lower bound and u is the upper bound
of the index range, the number of elements is given
by (u – l + 1).
NUMBER OF ELEMENTS IN AN ARRAY
ONE-DIMENSIONAL ARRAY
• Example: The number of elements in
i. A[1:26] = 26
ii. A[5:53]=49 (# 53-5+1)
iii. A[-1:26]=28
NUMBER OF ELEMENTS IN AN ARRAY
TWO-DIMENSIONAL ARRAY
• Definition of two-dimensional array A:
• A[l1 : u1 , l2 :u2 ]
• u1 indicates the number of rows and u2 the number
of columns in the array.
• The number of elements in A is u1.u2
• has a size of (u1 -l1+1) * (u2 -l2+1) elements.
NUMBER OF ELEMENTS IN AN ARRAY
TWO-DIMENSIONAL ARRAY
• Example: The number of elements in
i. A[1:10, 1:5] = 10x5 = 50
ii. A[-1:2, 2:6] = 4x5 = 20
iii. A[-0:5, -1:6] = 6x8 = 48
NUMBER OF ELEMENTS IN AN ARRAY
MULTI-DIMENSIONAL ARRAY
• Multidimensional array representation
• A[1:u1 , 1:u2 , 1:u3 , ….., 1:un ]
• has a size of u1 *u2 *u3 …..*un-1*un elements i.e –
• Generalizing the array A[l1 :u1 , l2 :u2 , l3 :u3 , …, In :un ]
has the size elements.
NUMBER OF ELEMENTS IN AN ARRAY
MULTI-DIMENSIONAL ARRAY
• Example: The number of elements in
i. A[-1:3, 3:4, 2:6] = (3-(-1)+1)(4-3+1)(6-2+1)=50
ii. A[0:2, 1:2, 3:4, -1:2] = 3x2x2x4=48
REPRESENTATION OF ARRAYS IN MEMORY
The arrays are stored in memory in one of the two ways, i.e.
row major order or lexicographic order or column major order.
REPRESENTATION OF ARRAYS IN MEMORY
The arrays are stored in memory in one of the two ways, i.e.
row major order or lexicographic order or column major order.
REPRESENTATION OF ARRAYS IN MEMORY
ONE-DIMENSIONAL ARRAY
• For the array A(1:u1) let α be the address of the
starting memory location referred to as the base
address of the array.
• Here as is evident, A[1] occupies the memory location
whose address is α, A(2) occupies α+1 and so on.
• In general, the address of A[i] is given by α+(i-1).
REPRESENTATION OF ARRAYS IN MEMORY
ONE-DIMENSIONAL ARRAY
• Figure below shows the representation of a one-
dimensional array in memory.
• In general for a one-dimensional array A(11 : u1), the
address of A[i] is given by α+(i-11) where α is the base
address of the array.
REPRESENTATION OF ARRAYS IN MEMORY
ONE-DIMENSIONAL ARRAY
• Example: For the array given below with α=100 as the
base address, the addresses of the elements specified,
are computed as given below:
Array Element Address
A[1:17] A[7] α+(7-1)= 100+6 =106
A[-2:23] A[16] α+(16-(-2))=100+18=118
REPRESENTATION OF ARRAYS IN MEMORY
TWO-DIMENSIONAL ARRAY
• Consider the array A[1:u1, 1:u2] which is to be stored in
memory. It is helpful to imagine this array as u1
number of one-dimensional arrays of length u2. Thus if
A[1,1] is stored in address α, the base address, then
A[i,1] has address α+(i-1)u2 , and A[i, j] has address
α+(i-1)u2 + (j-1).
• In general, for a two-dimensional array A[l1:u1, l2:u2]
the address of A[i, j] is given by α+(i-l1)(u2-l2+1)+ (j-l2).
REPRESENTATION OF ARRAYS IN MEMORY
TWO-DIMENSIONAL ARRAY
• Figure below shows the representation of a two-
dimensional arrays in the memory.
REPRESENTATION OF ARRAYS IN MEMORY
TWO-DIMENSIONAL ARRAY
• Example: For the array given below with α=220 as the
base address, the addresses of the elements specified,
are computed as given below:
Array Element Address
A[1:10, 1:5] A[8,3] 220 + (8-1)5+(3-1)=257
A[-2:4, -6:10] A[3, -5] 220+(3-(-2))(10-(-6)+1)+(-5-(-
6))=306
REPRESENTATION OF ARRAYS IN MEMORY
THREE-DIMENSIONAL ARRAY
• For the three dimensional array , A[1:u1, 1:u2, 1:u3] the
address of A[i,1,1] would be α +(i-1)u2.u3, the address of
A[i,j,1] would be α +(i-1)u2.u3 + (j-1)u3, and the address
of A[i,j,k] would be α +(i-1)u2.u3 +(j-1)u3+(k-1).
• In general for a three-dimensional array
A[l1:u1, l2:u2,l3:u3] the address of A[i,j,k] is given by
α +(i-l1)(u2-l2+1)(u3-l3+1)+(j-l2) (u3-l3+1)+(k-l3).
REPRESENTATION OF ARRAYS IN MEMORY
THREE-DIMENSIONAL ARRAY
• Figure below shows the representation of a three-
dimensional arrays in the memory.
REPRESENTATION OF ARRAYS IN MEMORY
THREE-DIMENSIONAL ARRAY
• Example: For the array given below with α=110 as the
base address, the addresses of the elements specified,
are computed as given below:
Array Element Address
A[1:5,1:2,1:3] A[2,1,3] 110+(2-1)6+(1-1)3+(3-1)=118
A[-2:4,-6:10,1:3] A[-1,-4,2] 110+(-1-(-2)).17.3+(-4-(-6))3+(2-1)=168
REPRESENTATION OF ARRAYS IN MEMORY
N-DIMENSIONAL ARRAY
• For the N dimensional array, A[1:u1, 1:u2,… 1:uN].The address
calculation for the retrieval of various elements are given below:
Element Address
A[i1 ,1,1,......1] (i1 1)u 2 u 3 ..u N
A[i1 , i2 ,1,1,...1] (i1 1)u 2 u 3 ..u N (i2 1)u 3 .u 4 ...u N
A[i1 , i2 , i3 ,1,1,1,..1]
(i1 1)u 2 u 3 ..u N (i2 1)u 3 u 4 ..u N (i3 1)u 4 u 5 ...u N
.
.
.
A[i1 , i2 , i3 ,...i N ]
(i1 1)u 2 u 3 ..u N (i2 1)u 3 u 4 ..u N ... (i N 1)
N N
= (i j 1) a j where a j u k ,1 j N
j 1 k j 1
APPLICATIONS
SPARSE MATRIX
• A matrix is a mathematical object which finds its applications in
various scientific problems. A matrix is an arrangement of m X n
elements arranged as m rows and n columns. The Sparse matrix
is a matrix with zeros as the dominating elements. There is no
precise definition for a sparse matrix. In other words, the
“sparseness” is relatively defined
Data objects:
A set of elements of the same type stored in a sequence
Operations:
· Store value VAL in the ith element of the array ARRAY
ARRAY[i] = VAL
· Retrieve the value in the ith element of array ARRAY as
VAL = ARRAY[i]