+ All Categories

Arrays

Date post: 25-May-2015
Category:
Upload: saritha-reddy
View: 608 times
Download: 1 times
Share this document with a friend
Description:
Useful for B.Sc students
Popular Tags:
50
ARRAYS IN DATASTRUCTURES ARRAYS IN DATASTRUCTURES USING ‘C’ USING ‘C’ Dr. C. Saritha Dr. C. Saritha Lecturer in Electronics Lecturer in Electronics SSBN Degree & PG College SSBN Degree & PG College ANANTAPUR ANANTAPUR
Transcript
Page 1: Arrays

ARRAYS IN ARRAYS IN DATASTRUCTURES USING ‘C’DATASTRUCTURES USING ‘C’

Dr. C. SarithaDr. C. Saritha

Lecturer in ElectronicsLecturer in Electronics

SSBN Degree & PG CollegeSSBN Degree & PG College

ANANTAPURANANTAPUR

Page 2: Arrays

OverviewOverview

What is Array?What is Array? Types of Arrays.Types of Arrays. Array operations.Array operations. Merging of arrays.Merging of arrays. Arrays of pointers.Arrays of pointers. Arrays and Polynomials.Arrays and Polynomials.

Page 3: Arrays

ARRAYARRAY

An array is a linear data structure. Which An array is a linear data structure. Which is a finite collection of similar data items is a finite collection of similar data items stored in successive or consecutive stored in successive or consecutive memory locations.memory locations.

For example an array may contains all For example an array may contains all integer or character elements, but not integer or character elements, but not both. both.

Page 4: Arrays

Each array can be accessed by using array Each array can be accessed by using array index and it is must be positive integer value index and it is must be positive integer value enclosed in square braces.enclosed in square braces.

This is starts from the numerical value 0 and This is starts from the numerical value 0 and ends at 1 less than of the array index value.ends at 1 less than of the array index value.

For example an array[n] containing n number For example an array[n] containing n number of elements are denoted by array[0],array[1],of elements are denoted by array[0],array[1],…..array[n-1]. where ‘0’ is called lower bound …..array[n-1]. where ‘0’ is called lower bound and the ‘n-1’ is called higher bound of the and the ‘n-1’ is called higher bound of the array.array.

Page 5: Arrays

Types of ArraysTypes of Arrays

Array can be categorized into different Array can be categorized into different types. They are types. They are

One dimensional arrayOne dimensional array Two dimensional arrayTwo dimensional array Multi dimensional arrayMulti dimensional array

Page 6: Arrays

One dimensional array:-One dimensional array:-

One dimensional array is also called as One dimensional array is also called as linear array. It is also represents 1-D linear array. It is also represents 1-D array.array.

the one dimensional array stores the data the one dimensional array stores the data elements in a single row or column.elements in a single row or column.

The syntax to declare a linear array is as The syntax to declare a linear array is as fallowsfallows

Syntax:Syntax: <data type> <array name> <data type> <array name> [size];[size];

Page 7: Arrays

Syntax for the initialization of the linear array is as fallowsSyntax for the initialization of the linear array is as fallows Syntax: Syntax: <data type><array name>[size]={values};<data type><array name>[size]={values}; Example: Example: int arr[6]={2,4,6,7,5,8}; int arr[6]={2,4,6,7,5,8}; Values Values

array name array name

array sizearray size data type data type

Page 8: Arrays

Memory representation of the one Memory representation of the one dimensional array:-dimensional array:-

a[0] a[1] a[2] a[3] a[4] a[5]a[0] a[1] a[2] a[3] a[4] a[5]

100 102 104 106 108 110100 102 104 106 108 110 The memory blocks a[0],a[1],a[2],a[3 ],a[4] , The memory blocks a[0],a[1],a[2],a[3 ],a[4] ,

a[5] with base addresses 1,102,104,106,108, a[5] with base addresses 1,102,104,106,108, 110 store the values 2,4,6,7,5,8 respectively.110 store the values 2,4,6,7,5,8 respectively.

22 44 66 77 55 88

Page 9: Arrays

Here need not to keep the track of the Here need not to keep the track of the address of the data elements of an array to address of the data elements of an array to perform any operation on data element. perform any operation on data element.

We can track the memory location of any We can track the memory location of any element of the linear array by using the element of the linear array by using the base address of the array.base address of the array.

To calculate the memory location of an To calculate the memory location of an element in an array by using formulae.element in an array by using formulae.

Loc (a[k])=base address +w(k-lower Loc (a[k])=base address +w(k-lower bound)bound)

Page 10: Arrays

Here k specifies the element whose Here k specifies the element whose location to find.location to find.

W means word length.W means word length. ExEx: We can find the location of the : We can find the location of the

element 5, present at a[3],base address is element 5, present at a[3],base address is 100, then100, then

loc(a[3])=100+2(3-0)loc(a[3])=100+2(3-0)

=100+6=100+6

=106.=106.

Page 11: Arrays

Two dimensional array:-Two dimensional array:- A two dimensional array is a collection of A two dimensional array is a collection of

elements placed in rows and columns.elements placed in rows and columns. The syntax used to declare two The syntax used to declare two

dimensional array includes two dimensional array includes two subscripts, of which one specifies the subscripts, of which one specifies the number of rows and the other specifies number of rows and the other specifies the number of columns. the number of columns.

These two subscripts are used to These two subscripts are used to reference an element in an array.reference an element in an array.

Page 12: Arrays

Syntax to declare the two dimensional array is as fallows Syntax to declare the two dimensional array is as fallows Syntax:Syntax: <data type> <array name> [row size] [column size]; <data type> <array name> [row size] [column size];

Syntax to initialize the two dimensional array is as fallowsSyntax to initialize the two dimensional array is as fallows Syntax:Syntax: <data type> <array name> [row size] [column <data type> <array name> [row size] [column

size]={values};size]={values};

Page 13: Arrays

ExampleExample:: int num[3][2]={4,3,5,6,,8,9};int num[3][2]={4,3,5,6,,8,9}; oror int num[3][2]={{4,3},{5,6},{8,9}}; int num[3][2]={{4,3},{5,6},{8,9}}; valuesvalues column size column size row size row size array name array name data typedata type

Page 14: Arrays

Representation of the 2-D Representation of the 2-D array:-array:- Rows Rows columnscolumns 00thth column 1st column column 1st column 00thth row row

11stst row row 22ndnd row row

a[0][0]a[0][0] a[0][1]a[0][1]

a[1][0]a[1][0] a[1][1]a[1][1]

a[2][0]a[2][0] a[2][1]a[2][1]

Page 15: Arrays

Memory representation of a 2-D array is different Memory representation of a 2-D array is different from the linear array.from the linear array.

in 2-D array possible two types of memory in 2-D array possible two types of memory arrangements. They are arrangements. They are

Row major arrangement Row major arrangement Column major arrangementColumn major arrangement

Memory representation of 2-D Memory representation of 2-D array:-array:-

Page 16: Arrays

Row major arrangement: Row major arrangement:

00thth row 1 row 1stst row 2 row 2ndnd row row

502 504 506 508 510 512 502 504 506 508 510 512 Column major arrangement:Column major arrangement:

00thth column 1 column 1stst column column

502 504 506 508 510 512 502 504 506 508 510 512

44 33 55 66 88 99

44 55 88 33 66 99

Page 17: Arrays

We can access any element of the array We can access any element of the array once we know the base address of the array once we know the base address of the array and number of row and columns present in and number of row and columns present in the array.the array.

In general for an array a[m][n] the address In general for an array a[m][n] the address of element a[i][j] would be,of element a[i][j] would be,

In row major arrangementIn row major arrangement

Base address+2(i*n+j)Base address+2(i*n+j) In column major arrangementIn column major arrangement

Base adress+2(j*m+i) Base adress+2(j*m+i)

Page 18: Arrays

Ex: we can find the location of the element 8 then

an array a[3][2] , the address of element would be a[2][0] would be

In row major arrangement loc(a[2][0])=502+2(2*2+0) =502+8 =510 In column major arrangement loc(a[2][0])=502+2(0*3+2) =502+4 =506

Page 19: Arrays

Multi dimensional arrays:- An array haves 2 or more subscripts, that An array haves 2 or more subscripts, that

type of array is called multi dimensional type of array is called multi dimensional array.array.

The 3 –D array is called as multidimensional The 3 –D array is called as multidimensional array this can be thought of as an array of array this can be thought of as an array of two dimensional arrays.two dimensional arrays.

Each element of a 3-D array is accessed Each element of a 3-D array is accessed using subscripts, one for each dimension.using subscripts, one for each dimension.

Page 20: Arrays

Syntax for the declaration and initialization as Syntax for the declaration and initialization as fallows Syntaxfallows Syntax

<data type><array name>[s1][s2][s3] <data type><array name>[s1][s2][s3] ={values}; ={values};

Ex:Ex: int a[2][3][2]={ { {2,1},{3,6},{5,3} }, { {0,9},{2,3},{5,8} } };

Page 21: Arrays

Memory representation of 3-D array:-

In multi dimensional arrays permits only In multi dimensional arrays permits only a row major arrangement.a row major arrangement.

00thth 2-D array 1 2-D array 1stst 2-D array 2-D array 10 12 14 16 18 20 22 24 26 28 30 3210 12 14 16 18 20 22 24 26 28 30 32

2 11 33 66 55 33 00 99 22 33 55 88

Page 22: Arrays

For any 3-D array a [x][y][z], the element For any 3-D array a [x][y][z], the element a[i][j][k] can be accessed as a[i][j][k] can be accessed as

Base address+2(i*y*z +j*z+ k)Base address+2(i*y*z +j*z+ k) Array a can be defined as int a [2][3][2] , Array a can be defined as int a [2][3][2] ,

element 9 is present at a[1][0][1] element 9 is present at a[1][0][1] Hence address of 9 can be obtained asHence address of 9 can be obtained as =10+2(1*3*2+0*2+1)=10+2(1*3*2+0*2+1) =10+14=10+14 =24=24

Page 23: Arrays

ARRAY OPERATIONSARRAY OPERATIONS

There are several operations that can be There are several operations that can be performed on an array. They areperformed on an array. They are

InsertionInsertionDeletionDeletionTraversalTraversalReversingReversingSortingSortingSearchingSearching

Page 24: Arrays

Insertion:Insertion:

Insertion is nothing but adding a new Insertion is nothing but adding a new element to an array.element to an array.

Here through a loop, we have shifted the Here through a loop, we have shifted the numbers, from the specified position, one numbers, from the specified position, one place to the right of their existing position.place to the right of their existing position.

Then we have placed the new number at Then we have placed the new number at the vacant place.the vacant place.

Page 25: Arrays

Ex:Ex:

for (i=4;i>= 2;i++)for (i=4;i>= 2;i++)

{{

a[i]=a[i-1];a[i]=a[i-1];

}}

a[i]=num;a[i]=num;

Page 26: Arrays

Before insertion :Before insertion :

0 1 2 3 40 1 2 3 4 After insertion:After insertion:

0 1 2 3 4 0 1 2 3 4 Fig:Fig: shifting the elements to the right while shifting the elements to the right while

Insuring an element at 2Insuring an element at 2ndnd position position

1111 1313 1414 4 4 00

1111 1212 1313 1414 44

Page 27: Arrays

Deletion:Deletion:

Deletion is nothing but process of remove Deletion is nothing but process of remove an element from the array.an element from the array.

Here we have shifted the numbers of Here we have shifted the numbers of placed after the position from where placed after the position from where the number is to be deleted, one place to the number is to be deleted, one place to the left of their existing positions.the left of their existing positions.

The place that is vacant after deletion of The place that is vacant after deletion of an element is filled with ‘0’.an element is filled with ‘0’.

Page 28: Arrays

ExEx::

for (i=3;i<5;i++)for (i=3;i<5;i++)

{{

a[i-1]=a[i];a[i-1]=a[i];

} }

a[i-1]=0;a[i-1]=0;

Page 29: Arrays

Before deletion: Before deletion:

0 1 2 3 40 1 2 3 4 After deletion:After deletion:

0 1 2 3 40 1 2 3 4 Fig:Fig: shifting the elements to the left while shifting the elements to the left while

deleting 3deleting 3rdrd element in an array. element in an array.

1111 1212 1313 1414 44

1111 1313 1414 44 00

Page 30: Arrays

Traversal:Traversal: Traversal is nothing but display the Traversal is nothing but display the

elements in the array.elements in the array. Ex:Ex: for (i=0;i<5;i++)for (i=0;i<5;i++) {{ Printf (“%d\t”, a[i]);Printf (“%d\t”, a[i]); }}

1111 1212 1414 44 00

Page 31: Arrays

Reversing:Reversing: This is the process of reversing the elements This is the process of reversing the elements

in the array by swapping the elements.in the array by swapping the elements. Here swapping should be done only half times Here swapping should be done only half times

of the array size.of the array size. Ex:Ex: for (i=0;i<5/2;i++)for (i=0;i<5/2;i++) { { int temp=a[i];int temp=a[i]; a[i]=a[5-1-1];a[i]=a[5-1-1]; a[5-1-i]=temp;a[5-1-i]=temp; }}

Page 32: Arrays

Before swapping:Before swapping:

0 1 2 3 40 1 2 3 4 After swapping:After swapping:

0 1 2 3 40 1 2 3 4Fig:Fig: swapping of elements while reversing an array. swapping of elements while reversing an array.

1111 1212 1313 1414 00

00 1414 1313 1212 1111

Page 33: Arrays

Sorting:Sorting:

Sorting means arranging a set of data Sorting means arranging a set of data in some order like ascending or in some order like ascending or descending order.descending order.

Page 34: Arrays

Ex:Ex: for (i=0;i<5;i++) for (i=0;i<5;i++) {{ for (j=i+1;j<5;j++)for (j=i+1;j<5;j++) {{ if (a[i]>a[j])if (a[i]>a[j]) {{ temp=a[i];temp=a[i]; a[i]=a[j];a[i]=a[j]; a[j]=temp;a[j]=temp; } } }} } }

Page 35: Arrays

1717 2525 1313 22 11

1 1 22 1313 1717 2525

Before sorting:Before sorting:

0 1 2 3 40 1 2 3 4 After sorting:After sorting:

0 1 2 3 40 1 2 3 4

Page 36: Arrays

Searching:Searching:

Searching is the process of finding the Searching is the process of finding the location of an element with a given location of an element with a given element in a list..element in a list..

Here searching is starts from 0Here searching is starts from 0thth element element and continue the process until the given and continue the process until the given specified number is found or end of list is specified number is found or end of list is reached.reached.

Page 37: Arrays

Ex:Ex: for (i=0;i<5;i++)for (i=0;i<5;i++) {{ if (a[i]==num)if (a[i]==num) {{ Printf(“\n element %d is present at %dPrintf(“\n element %d is present at %dth th

position”,num,i+1);position”,num,i+1); return;return;}}if (i==5)}}if (i==5)Printf (“the element %d is not present in the array Printf (“the element %d is not present in the array

”,num);”,num);

Page 38: Arrays

1111 1212 1313 1414 44 1313

1111 1212 1313 1414 44 1313

13131111 1212 1313 1414 44

Page 39: Arrays

Merging of arraysMerging of arrays Merging means combining two sorted list Merging means combining two sorted list

into one sorted list.into one sorted list. Merging of arrays involves two steps:Merging of arrays involves two steps:

They areThey are sorting the arrays that are to be sorting the arrays that are to be

merged.merged.Adding the sorted elements of both Adding the sorted elements of both

the arrays a to a new array in sorted the arrays a to a new array in sorted order.order.

Page 40: Arrays

Ex:Ex: Before merging:Before merging:

11stst array 2 array 2ndnd array array

After merging:After merging:

22 88 1111

11 22 33 88 1111 1313

11 33 1313

Page 41: Arrays

Arrays of pointersArrays of pointers

A pointer variable always contains an A pointer variable always contains an address.address.

An array of pointer would be nothing but An array of pointer would be nothing but a collection of addresses.a collection of addresses.

The address present in an array of pointer The address present in an array of pointer can be address of isolated variables or can be address of isolated variables or even the address of other variables.even the address of other variables.

Page 42: Arrays

An array of pointers widely used for An array of pointers widely used for stoning several strings in the array.stoning several strings in the array.

The rules that apply to an ordinary array The rules that apply to an ordinary array also apply to an array of pointer as well.also apply to an array of pointer as well.

The elements of an array of pointer are The elements of an array of pointer are stored in the memory just like the elements stored in the memory just like the elements of any other kind of array.of any other kind of array.

Memory representation of the array of Memory representation of the array of integers and an array of pointers integers and an array of pointers respectively.respectively.

Page 43: Arrays

Fig1Fig1:Memory representation of an array of :Memory representation of an array of integers and integer variables I and j.integers and integer variables I and j.

a[0] a[1] a[2] a[3] i j a[0] a[1] a[2] a[3] i j

100 102 104 106 200 312 100 102 104 106 200 312 Fig2:Fig2:Memory representation of an array of Memory representation of an array of

pointers. pointers. b[0] b[1] b[2] b[3] b[4] b[5]b[0] b[1] b[2] b[3] b[4] b[5]

8112 8114 8116 8118 8120 8122 8112 8114 8116 8118 8120 8122

33 44 55 66

100100 102102 104104 106106 200200 312312

11 99

Page 44: Arrays

Arrays and polynomialsArrays and polynomials

Polynomials like 5xPolynomials like 5x44+2 x+2 x33+7x+7x22+10x-8 +10x-8 can be maintained using an array.can be maintained using an array.

To achieve each element of the array To achieve each element of the array should have two values coefficient and should have two values coefficient and exponent.exponent.

Page 45: Arrays

While maintaining the polynomial it is While maintaining the polynomial it is assumes that the exponent of each assumes that the exponent of each successive term is less than that of the successive term is less than that of the previous term.previous term.

Once we build an array to represent Once we build an array to represent polynomial we can use such an array to polynomial we can use such an array to perform common polynomial operations perform common polynomial operations like addition and multiplication.like addition and multiplication.

Page 46: Arrays

Addition of two polynomialsAddition of two polynomials::

Here if the exponents of the 2 terms Here if the exponents of the 2 terms beinf compared are equal then their beinf compared are equal then their coefficients are added and the result is coefficients are added and the result is stored in 3stored in 3rdrd polynomial. polynomial.

If the exponents of the 2 terms are not If the exponents of the 2 terms are not equal then the term with the bigger equal then the term with the bigger exponent is added to the 3 rd exponent is added to the 3 rd polynomial.polynomial.

Page 47: Arrays

If the term with an exponent is present in If the term with an exponent is present in only 1 of the 2 polynomials then that only 1 of the 2 polynomials then that term is added as it is to the 3term is added as it is to the 3rdrd polynomial.polynomial.

Ex:Ex: 11stst polynomial is 2x polynomial is 2x66+3x+3x55+5x+5x22 22ndnd polynomial is 1x polynomial is 1x66+5x+5x22+1x+2+1x+2 Resultant polynomial isResultant polynomial is 3x3x66+3x+3x55+10x+10x22+1x+2+1x+2

Page 48: Arrays

Multiplication of 2 polynomials:Multiplication of 2 polynomials:

Here each term of the coefficient of the 2Here each term of the coefficient of the 2ndnd polynomial is multiplied with each term of the polynomial is multiplied with each term of the coefficient of the 1coefficient of the 1stst polynomial. polynomial.

Each term exponent of the 2Each term exponent of the 2ndnd polynomial is polynomial is added to the each tem of the 1added to the each tem of the 1stst polynomial. polynomial.

Adding the all terms and this equations placed Adding the all terms and this equations placed to the resultant polynomial.to the resultant polynomial.

Page 49: Arrays

Ex:Ex: 11stst polynomial is polynomial is

1x1x44+2x+2x33+2x+2x22+2x+2x 22ndnd polynomial is polynomial is

2x2x33+3x+3x22+4x+4x Resultant polynomial isResultant polynomial is

2x2x77+7x+7x66+14x+14x55+18x+18x44+14x+14x33+8x+8x22

Page 50: Arrays

THE ENDTHE END


Recommended