bbm 201 data structures - hacettepebbm201/fall2015/lectures/bbm201-ders3.pdf · bbm 201 data...

35
BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Upload: vuongthu

Post on 04-Aug-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

BBM 201 DATA STRUCTURES

Lecture 3: Representation of Multidimensional Arrays

2015-2016 Fall

Page 2: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

What is an Array? •  An array is a fixed size sequential collection of elements of identical types. •  A multidimensional array is treated as an array of arrays.

•  Let a be a k-dimensional array; the elements of a can be accessed using the following syntax:

a [ i1 ] [ i2 ]…[ ik ]

The following loop stores 0 into each location in two dimensional array A : int row, column;

for (row = 0; row < 3; row++) { for (column = 0; column < 4; column++) {

A[row][column] = 0; }

}

Page 3: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Definition of a Multidimensional Array • One-dimensional arrays are linear containers.

[0] [1] [2]

Multi-dimensional Arrays

[0][0] [1] [2] [3]

[1]

[2]

[0]

[0] [1] [2] [3] [4]

[1]

[2]

[3]

[2][1]

[0]

Page 4: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Two-Dimensional Array

Page 5: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Storage Allocation

Page 6: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Array size

•  In a matrix which is defined as a[upper0] [upper1]…[uppern-1],

the number of items is: Example: What is the number of items in a[20][20][1]?

upperii=0

n−1

Page 7: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Memory Storage •  There are two types of placement for multidimensional

arrays in memory: •  Row major ordering •  Column major ordering Example: In an array which is defined as A[upper0][upper1], if the memory address of A[0][0] is α, then what is the memory address of A[i][0] (according to row major ordering)?

Page 8: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Memory Storage •  There are two types of placement for multidimensional

arrays in memory: •  Row major ordering •  Column major ordering Example: In an array which is defined as A[upper0][upper1], if the memory address of A[0][0] is α, then what is the memory address of A[i][0] (according to row major ordering)?

α + i*upper1

Page 9: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Memory Storage •  For a three-dimensional array A[upper0][upper1][upper2] what is the memory storage like?

• Example: int y[2][2][4]

• What is the memory address of y[1][1][3] if the memory address of y[0][0][0] α?

which slice? which row? which column?

Page 10: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Memory Storage

The memory address of a[i][0][0] is: if the memory address of a[0][0][0] is α. Therefore, the memory address of a[i][j][k] becomes: The memory address of a[i0] [i1] [i2]…[in-1] is:

α + i*upper1 *upper2

α + i*upper1 *upper2 + j *upper2 + k

α + ijajj=0

n−1

∑aj = upperk

k= j+1

n−1

∏ 0 ≤ j ≤ n−1

an−1 =1

%

&''

(''

Page 11: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

Pointers and Multi-dimensional Arrays

Page 12: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 13: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 14: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 15: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 16: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 17: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 18: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 19: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 20: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 21: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 22: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 23: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 24: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 25: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 26: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 27: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 28: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 29: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 30: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 31: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 32: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 33: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 34: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall
Page 35: BBM 201 DATA STRUCTURES - Hacettepebbm201/Fall2015/Lectures/BBM201-Ders3.pdf · BBM 201 DATA STRUCTURES Lecture 3: Representation of Multidimensional Arrays 2015-2016 Fall

References • BBM 201 Notes by Mustafa Ege •  Lecture Videos: www.mycodeschool.com/videos/pointers-

and-arrays