0% found this document useful (0 votes)
85 views

Presentation Array Data Structure 1516908360 277498

The document discusses linear arrays as a data structure. It defines a linear array as a list of homogeneous elements stored in contiguous memory locations that can be accessed via indexes. The location of each element in memory can be calculated from the base address of the array. Common operations on linear arrays include traversal, searching, insertion, deletion, and sorting of elements. The document provides examples of how element addresses are calculated in memory and how elements can be inserted and deleted from different positions in the array.

Uploaded by

Akhila Shaji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views

Presentation Array Data Structure 1516908360 277498

The document discusses linear arrays as a data structure. It defines a linear array as a list of homogeneous elements stored in contiguous memory locations that can be accessed via indexes. The location of each element in memory can be calculated from the base address of the array. Common operations on linear arrays include traversal, searching, insertion, deletion, and sorting of elements. The document provides examples of how element addresses are calculated in memory and how elements can be inserted and deleted from different positions in the array.

Uploaded by

Akhila Shaji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 49

DATA STRUCTURE

AND ALGORITHM
AK

1
DATA STRUCTURE
VS
STORAGE STRUCTURE

• Data Structure : The logical or mathematical model of a particular


organization of data
• Storage Structure : Representation of a particular data structure in
the memory of a computer
• There are many possible storage structure to a particular data
structure
• Ex: there are a number of storage structure for a data structure such as array
– It is possible for two DS to represented by the same storage structure

2
CLASSIFICATION

• Data Structure
– Linear
– Non-Linear

• A Data structure is said to be linear if its elements from a sequence


or in other words form a linear list

3
REPRESENTATION IN
MEMORY
• Two basic representation in memory
– Have a linear relationship between the elements represented by means of
sequential memory locations [ Arrays]

– Have the linear relationship between the elements represented by means


of pointer or links [ Linked List]

4
OPERATION ON LINEAR
STRUCTURE
• Traversal : Processing each element in the list
• Search : Finding the location of the element with a given value or the
record with a given key
• Insertion: Adding a new element to the list
• Deletion: Removing an elements from the list
• Sorting : Arranging the elements in some type of order
• Merging : Combining two list into a single list

5
Array

6
LINEAR ARRAYS

• A linear array is a list of a finite number of n homogeneous data


elements ( that is data elements of the same type) such that
– The elements are of the arrays are referenced respectively by an index set
consisting of n consecutive numbers
– The elements of the arrays are stored respectively in successive memory
locations

7
LINEAR ARRAYS

• The number n of elements is called the length or size of the array.


• The index set consists of the integer 1, 2, … n
• Length or the number of data elements of the array can be obtained
from the index set by
Length = UB – LB + 1 where UB is the largest index called the
upper bound and LB is the smallest index called the lower bound of
the arrays

8
LINEAR ARRAYS

• Element of an array A may be denoted by


– Subscript notation A1, A2, , …. , An
– Parenthesis notation A(1), A(2), …. , A(n)
– Bracket notation A[1], A[2], ….. , A[n]

• The number K in A[K] is called subscript or an index and A[K] is


called a subscripted variable

9
REPRESENTATION OF LINEAR
ARRAY IN MEMORY
1000

1001

1002

1003

1004

1005

:
Computer Memory

10
REPRESENTATION OF LINEAR
ARRAY IN MEMORY
• Let LA be a linear array in the memory of the computer
• LOC(LA[K]) = address of the element LA[K] of the array LA
• The element of LA are stored in the successive memory cells
• Computer does not need to keep track of the address of every element
of LA, but need to track only the address of the first element of the
array denoted by Base(LA) called the base address of LA

11
REPRESENTATION OF LINEAR
ARRAY IN MEMORY
• LOC(LA[K]) = Base(LA) + w(K – lower bound) where w is the
number of words per memory cell of the array LA [w is aka size of the
data type]

12
EXAMPLE 1
200 LA[1]
Find the address for LA[6] 201 LA[2]
Each element of the array occupy 202
1 byte LA[3]
203
LA[4]
204
LA[5]
205 LA[6]
206 LA[7]
207
LA[8]

LOC(LA[K]) = Base(LA) + w(K – lower bound) :


LOC(LA[6]) = 200 + 1(6 – 1) = 205
13
EXAMPLE 2
200
Find the address for LA[16] 201 LA[1]
Each element of the array occupy 202
2 byte LA[2]
203

204

205 LA[3]
206

207
LA[4]

LOC(LA[K]) = Base(LA) + w(K – lower bound) :


LOC(LA[16]) = 200 + 2(16 – 1) = 230
14
REPRESENTATION OF LINEAR
ARRAY IN MEMORY
• Given any value of K, time to calculate LOC(LA[K]) is same
• Given any subscript K one can access and locate the content of
LA[K] without scanning any other element of LA
• A collection A of data element is said to be index if any element of A
called Ak can be located and processed in time that is independent of
K

15
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

16
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

17
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

18
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

19
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

20
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

21
TRAVERSING LINEAR
ARRAYS
• Traversing is accessing and processing (aka visiting ) each element of
the data structure exactly ones

Linear Array
•••

1. Repeat for K = LB to UB
Apply PROCESS to LA[K]
[End of Loop]
2. Exit 22
INSERTING AND DELETING
• Insertion: Adding an element
– Beginning
– Middle
– End

• Deletion: Removing an element


– Beginning
– Middle
– End

23
INSERTION
1 Brown 1 Brown

2 Davis 2 Davis

3 Johnson 3 Johnson

4 Smith 4 Smith

5 Wagner 5 Wagner

6 6 Ford

7 7

8 8

Insert Ford at the End of Array

24
INSERTION
1 Brown 1 Brown 1 Brown 1 Brown
2 Davis 2 Davis 2 Davis 2 Davis
3 Johnson 3 Johnson 3 Johnson 3 Ford
4 Smith 4 Smith 4 4 Johnson
5 Wagner 5 5 Smith 5 Smith
6 6 Wagner 6 Wagner 6 Wagner
7 7 7 7
8 8 8 8

Insert Ford as the 3rd Element of Array

Insertion is not Possible without loss of data


if the array is FULL
25
DELETION
1 Brown 1 Brown

2 Davis 2 Davis

3 Ford 3 Ford

4 Johnson 4 Johnson

5 Smith 5 Smith

6 Taylor 6 Taylor

7 Wagner 7

8 8

Deletion of Wagner at the End of Array

26
DELETION
1 Brown 1 Brown 1 Brown
1 Brown
2 Davis 2 2 Ford
2 Ford
3 Ford 3 Ford 3
3 Johnson
4 Johnson 4 Johnson 4 Johnson
4
5 Smith 5 Smith 5 Smith
5 Smith
6 Taylor 6 Taylor 6 Taylor
6 Taylor
7 Wagner 7 Wagner 7 Wagner
7 Wagner
8 8 8
8

Deletion of Davis from the Array

27
DELETION
1 Brown

2 Ford

3 Johnson

4 Smith

5 Taylor

6 Wagner

No data item can be deleted from an empty array

28
INSERTION ALGORITHM
• INSERT (LA, N , K , ITEM) [LA is a linear array with N elements
and K is a positive integers such that K ≤ N. This algorithm
insert an element ITEM into the Kth position in LA ]
1. [Initialize Counter] Set J := N
2. Repeat Steps 3 and 4 while J ≥ K
3. [Move the Jth element downward ] Set LA[J + 1] :=
LA[J]
4. [Decrease Counter] Set J := J -1
5 [Insert Element] Set LA[K] := ITEM
6. [Reset N] Set N := N +1;
7. Exit
29
DELETION ALGORITHM
• DELETE (LA, N , K , ITEM) [LA is a linear array with N elements
and K is a positive integers such that K ≤ N. This algorithm
deletes Kth element from LA ]
1. Set ITEM := LA[K]
2. Repeat for J = K to N -1:
[Move the J + 1st element upward] Set LA[J] := LA[J +
1]
3. [Reset the number N of elements] Set N := N - 1;
4. Exit

30
MULTIDIMENSIONAL ARRAY

• One-Dimensional Array
• Two-Dimensional Array
• Three-Dimensional Array
• Some programming Language allows as many as 7 dimension

31
TWO-DIMENSIONAL ARRAY
• A Two-Dimensional m x n array A is a collection of m . n data elements
such that each element is specified by a pair of integer (such as J, K) called
subscript with property that
1 ≤ J ≤ m and 1 ≤ K ≤ n

The element of A with first subscript J and second subscript K will be denoted
by AJ,K or A[J][K]

32
2D ARRAYS
T H E E L E M E N T S O F A 2 - D I M E N S I O N A L A R R AY A I S S H O W N A S
BELOW

A[0][0] A[0][1] A[0][2] A[0]


[3]
A[1][0] A[1][1] A[1][2] A[1]
[3]
A[2][0] A[2][1] A[2][2] A[2]
[3]
ROWS OF A 2D
ARRAY
A[0][0] A[0][1] A[0][2] A[0][3] ROW 0
A[1][0] A[1][1] A[1][2] A[1][3] ROW 1
A[2][0] A[2][1] A[2][2] A[2][3] ROW 2
COLUMNS OF A
2D ARRAY
A[0][0] A[0][1] A[0][2] A[0][3]
A[1][0] A[1][1] A[1][2] A[1][3]
A[2][0] A[2][1] A[2][2] A[2][3]

column 0 column 1 column 2 column 3


2D ARRAY

• Let A be a two-dimensional array m x n


• The array A will be represented in the memory by a block of m x n
sequential memory location
• Programming language will store array A either
– Column by Column (Called Column-Major Order) Ex: Fortran,
MATLAB
– Row by Row (Called Row-Major Order) Ex: C, C++ , Java

36
2D ARRAY IN MEMORY
A Subscript A Subscript
(1,1) (1,1)
(2,1) (1,2)
Column 1 Row 1
(3,1) (1,3)
(1,2) (1,4)
(2,2) (2,1)
Column 2
(3,2) (2,2)
(1,3) (2,3)
Row 2
(2,3) Column 3 (2,4)
(3,3) (3,1)
(1,4) (3,2)
Row 3
(2,4) Column 4 (3,3)
(3,4) (3,4)

Column-Major Order Row-Major Order 37


2D ARRAY
• LOC(LA[K]) = Base(LA) + w(K -1)

• LOC(A[J,K]) of A[m,n]
Column-Major Order
LOC(A[J,K]) = Base(A) + w[m(K-1) + (J-1)]
Row-Major Order
LOC(A[J,K]) = Base(A) + w[n(J-1) + (K-1)]

38
2D ARRAY EXAMPLE

• Consider a 25 x 4 array A. Suppose the Base(A) = 200 and w =4.


Suppose the programming store 2D array using row-major. Compute
LOC(A[12,3])

• LOC(A[J,K]) = Base(A) + w[n(J-1) + (K-1)]

• LOC(A[12,3]) = 200 + 4[4(12-1) + (3 -1)]


= 384

39
MULTIDIMENSIONAL ARRAY

• An n-dimensional m1 x m2 x …. X mn array B is a collection of


m1.m2…mn data elements in which each element is specified by a list
of n integers – such as K1, K2, …., Kn – called subscript with the
property that
1≤K1≤m1, 1≤K2≤m2, …. 1≤Kn≤mn
The Element B with subscript K1, K2, …,Kn will be denoted by
BK1,K2, …,Kn or B[K1,K2,….,Kn]

40
MULTIDIMENSIONAL ARRAY

• Let C be a n-dimensional array


• Length Li of dimension i of C is the number of elements in the index
set
Li = UB – LB + 1
• For a given subscript Ki, the effective index Ei of Li is the number of
indices preceding Ki in the index set
Ei = Ki – LB

41
MULTIDIMENSIONAL ARRAY
• Address LOC(C[K1,K2, …., Kn]) of an arbitrary element of C can be obtained as
Column-Major Order
Base( C) + w[((( … (ENLN-1 + EN-1)LN-2) + ….. +E3)L2+E2)L1+E1]
Row-Major Order
Base( C) + w[(… ((E1L2 + E2)L3 + E3)L4 + ….. +EN-1)LN +EN]

42
EXAMPLE

• MAZE(2:8, -4:1, 6:10)


• Calculate the address of MAZE[5,-1,8]
• Given: Base(MAZE) = 200, w = 4, MAZE is stored in Row-Major
order
• L1 = 8-2+1 = 7, L2 = 6, L3 = 5
• E1 = 5 -2 = 3, E2 = 3, E3 = 2

43
EXAMPLE CONTD ..

• Base( C) + w[(… ((E1L2 + E2)L3 + E3)L4 + ….. +EN-1)LN +EN]


• E1L2 = 3 . 6 = 18
• E1L2 + E2 = 18 + 3 = 21
• (E1L2 + E2)L3 = 21 . 5 = 105
• (E1L2+E2)L3 + E3 = 105 + 2 = 107
• MAZE[5,-1,8] = 200 + 4(107) = 200 + 248 = 628

44
POINTER, POINTER ARRAY

• Let DATA be any array


• A variable P is called a pointer if P points to an element in DATA i.e
if P contains the address of an element in DATA
• An array PTR is called a pointer array if each element of PTR is a
pointer

45
Group 1 Group 2 Group 3 Group 4

Evan Conrad Davis Baker

Harris Felt Segal Cooper


Two Dimensional
Lewis Glass Ford 4x9 or 9x4 array
Shaw Hill Gray

Penn Jones

Silver Reed

Troy

Wagner

King

46
1 Evan
2 Harris
3 Lewis Group 1
4 Shaw
5 Conrad
: : Group 2
13 Wagner
14 Davis
15 Segal Group 3

16 Baker
: : Group 4
21 Reed

47
1 Evan
: : Group 1
4 Shaw
5 $$$
6 Conrad Group are not index in
: : Group 2 this representation

14 Wagner
15 $$$
16 Davis Group 3
17 Segal
18 $$$
19 Baker
: : Group 4
24 Reed 48
1 Evan
2 Harris Group 1
Group 3 Lewis
1 1 4 Shaw
2 5
5 Conrad
3 14

4 16
: : Group 2
5 22 13 Wagner
14 Davis
15 Segal Group 3

16 Baker
: : Group 4
21 Reed
22 $$$
49

You might also like