Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Structure(s) A way of storing and organizing data in a computer so that it can be used efficiently. e.g. Arrays Linked Lists stacks Queues Trees.

Similar presentations


Presentation on theme: "Data Structure(s) A way of storing and organizing data in a computer so that it can be used efficiently. e.g. Arrays Linked Lists stacks Queues Trees."— Presentation transcript:

1 Data Structure(s) A way of storing and organizing data in a computer so that it can be used efficiently. e.g. Arrays Linked Lists stacks Queues Trees etc

2 Arrays

3 Array Consecutive group of memory locations Same name
Same type (int, char, etc.)

4 Declaring Arrays int b[ 100 ], x[ 27 ]; When declaring arrays, specify
Type of array Name Number of elements type arrayName[ arraySize ]; int c[ 10 ]; // array of 10 integers float d[ 3284 ]; // array of 3284 floats Declaring multiple arrays of same type Use comma separated list, like regular variables int b[ 100 ], x[ 27 ];

5 Initializing Arrays Initializing arrays For loop Initializer list
Set each element Initializer list Specify each element when array declared int n[ 5 ] = { 1, 2, 3, 4, 5 }; If not enough initializers, rightmost elements 0 If too many syntax error

6 If array size omitted, Initializer determine size
To set every element to 0 int n[ 5 ] = { 0 }; If array size omitted, Initializer determine size int n[] = { 1, 2, 3, 4, 5 }; 5 Initializer, therefore 5 element array

7 Array elements like other variables
Assignment, printing for an integer array c c[ 0 ] = 3; cout << c[ 0 ]; A subscript must be an integer or integer expression. Can perform operations inside subscript c[ 5 – 2 ] same as c[3]

8 To refer to an element N-element array c
Specify array name and position number (index/subscript) Format: arrayname[ position number ] First element at position 0 N-element array c c[ 0 ], c[ 1 ] … c[ n - 1 ] Nth element as position N-1

9 Example #include <iostream> using namespace std; void main() {
int n[ 5]={4,5, 6,10,12}; cout<<"Array elements\n"; cout<<n[0]<<endl; cout<<n[1]<<endl; cout<<n[2]<<endl; cout<<n[3]<<endl; cout<<n[4]<<endl; }

10 Example #include <iostream> using namespace std; void main() { int n[ 10 ]={4,5, 6,10,12}; cout<<"Array elements\n"; for ( int i = 0; i < 5; i++ ) cout<<n[i]<<endl; }

11 Find the sum and average of one dimensional integer array.

12 Allow the user to input integers in an array only if the integer is even.

13 Find the smallest element of an array

14 Passing Arrays to Functions

15 Passing Arrays to Functions
Specify name without brackets To pass array myArray to myFunction int myArray[ 24 ]; myFunction( myArray, 24 ); Array size usually passed, but not required Useful to iterate over all elements

16 Passing Arrays to Functions
Arrays passed-by-reference Functions can modify original array data Value of name of array is address of first element Function knows where the array is stored Can change original memory locations Individual array elements passed-by-value Like regular variables square( myArray[3] );

17 Passing Arrays to Functions
Functions taking arrays Function prototype void modifyArray( int b[], int arraySize ); void modifyArray( int [], int ); Names optional in prototype Both take an integer array and a single integer No need for array size between brackets Ignored by compiler If declare array parameter as const Cannot be modified (compiler error) void doNotModify( const int [] );

18 Example (Passing Array to Functions)
void function1(int [], int); void function2(int); void main () { const int size=5; int array[]={1, 2,3 ,4,5}; cout<<"Array elements before function call:"; for (int i=0; i<5;i++) cout<<array[i]<<" "; cout<<endl;

19 function1(array, 5); cout<<endl; cout<<"Array elements after function call\n"; for (i=0; i<size;i++) cout<<array[i]<<" "; cout<<"passing array element array[2] to the function\n"; cout<<"Before:"<<array[2]<<endl; function2(array[2]); cout<<"After:"<<array[2]<<endl; }

20 //function definitions
void function1(int a[],int size) { cout<<"Array elements in function call\n"; for (int i=0; i<size; i++) cout<<(a[i]*=2)<<" "; } void function2( int x) { cout<<"In Function:"; cout<<x*2<<endl;

21 Searching Arrays

22 Searching Arrays: Linear Search
Search array for a key value Linear search Compare each element of array with key value Start at one end, go to other Useful for small and unsorted arrays Inefficient If search key not present, examines every element

23 Example (Array Search)
#include<iostream> using namespace std; void main () { const int size=10; int a[size]={ 5,6,1,8,3,7,2,10,9,4}; for(int k=0; k<size; k++) cout<<a[k]<<" "; cout<<endl; int searchKey; cout << "Enter integer search key: "; cin >> searchKey;

24 for( k=0; k<size; k++)
if (a[k]==searchKey) cout<<"The element to be searched is found at index a["<<k<<"]"; cout<<endl; }

25 Array Sorting

26 Sorting Arrays Sorting data Bubble sort
Important computing application Virtually every organization must sort some data Bubble sort Several passes through the array (assume: elements are to be sorted in increasing order) Successive pairs of elements are compared If increasing order (or identical), no change If decreasing order, elements exchanged Repeat these steps for every element

27 Sorting Arrays Example:
Go left to right, and exchange elements as necessary One pass for each element Original: Pass 1: (elements exchanged) Pass 2: Pass 3: (no changes needed) Pass 4: Pass 5:

28 Sorting Arrays Swapping variables What happened? Solution
int x = 3, y = 4; y = x; x = y; What happened? Both x and y are 3! Need a temporary variable Solution int x = 3, y = 4, temp = 0; temp = x; // temp gets 3 x = y; // x gets 4 y = temp; // y gets 3

29 Example (Array Sorting)
#include<iostream> using namespace std; void main () { const int size=10; int a[size]={ 5,6,1,8,3,7,2,10,9,4}; for(int k=0; k<size; k++) cout<<a[k]<<" "; cout<<endl;

30 int temp; //sorting process for ( int pass = 0; pass < size - 1; pass++ ) for ( int j = 0; j < size - 1; j++ ) // loop to control number of comparisons per pass if ( a[ j ] > a[ j + 1 ] ) { temp = a[ j ]; a[ j ] = a[ j + 1 ]; a[ j + 1 ] = temp; } cout<<"Sorted Array\n"; for( k=0; k<size; k++) cout<<a[k]<<" "; cout<<endl;

31 Character Arrays

32 Character Arrays 2 kinds of strings C-Strings Objects of String class

33 Contd… Strings Arrays of characters All strings end with null ('\0')
Examples char string1[] = "hello"; Null character implicitly added string1 has 6 elements char string1[] = { 'h', 'e', 'l', 'l', 'o', '\0’ }; Subscripting is the same String1[ 0 ] is 'h' string1[ 2 ] is 'l'

34 Contd… Input from keyboard Printing strings Puts user input in string
char string2[ 10 ]; cin >> string2; Puts user input in string Stops at first whitespace character Adds null character If too much text entered, data written beyond array Printing strings cout << string2 << endl; Does not work for other array types Characters printed until null found

35 Example (C-String Variable)
#include<iostream> using namespace std; int main () { char a[20]; cout<<"Enter String\n"; cin>>a; cout<<"you entered "<<a<<endl; return 0; }

36 Example (String Constants)
#include<iostream> using namespace std; int main () { char question[] = "Please, enter your first name: "; char greeting[] = "Hello, "; char yourname [80]; cout << question; cin >> yourname; cout << greeting << yourname << "!"<<endl; return 0; }

37 Example (Reading Embedded Blanks)
#include<iostream> using namespace std; int main () { char question[] = "Please, enter your first name: "; char greeting[] = "Hello, "; char yourname [80]; cout << question; cin.get(yourname,80); cout << greeting << yourname << "!"<<endl; return 0; }

38 Copying string #include <iostream> using namespace std; int main() { char a1[50]="This is a string"; char a2[50]; for (int i=0;a1[i]!='\0'; i++) a2[i]=a1[i]; a2[i]='\0'; cout<<a2<<endl; return 0; }

39 Easy way! #include <iostream> using namespace std; int main() { char a1[50]="This is a string"; char a2[50]; strcpy(a2,a1); cout<<a2<<endl; return 0; }

40 strlen, strcpy() & strcmp()
Strlen (array); tells the length of the array Strcpy(destination, source); Copies the source values to the destination Strcmp(str1, str2); compares two strings str1 & str2 and gives the integer value. 0 indicates the matching strings Otherwise not same

41 String class No need to specify array size (responsibility of memory management) Input and output similar to C-Strings

42 Example #include<iostream> #include<string> using namespace std; int main () { string question = "Please, enter your first name: "; string greeting ("Hello, "); string yourname; cout << question; getline(cin, yourname); cout<<greeting+yourname<<endl; return 0; }

43 2 Dimensional Arrays

44 Multiple-Subscripted Arrays
Multiple subscripts a[ i ][ j ] Tables with rows and columns Specify row, then column “Array of arrays” a[0] is an array of 4 elements a[0][0] is the first element of that array Row 0 Row 1 Row 2 Column 0 Column 1 Column 2 Column 3 a[ 0 ][ 0 ] a[ 1 ][ 0 ] a[ 2 ][ 0 ] a[ 0 ][ 1 ] a[ 1 ][ 1 ] a[ 2 ][ 1 ] a[ 0 ][ 2 ] a[ 1 ][ 2 ] a[ 2 ][ 2 ] a[ 0 ][ 3 ] a[ 1 ][ 3 ] a[ 2 ][ 3 ] Column subscript Array name Row subscript

45 Multiple-Subscripted Arrays
To initialize Initializers grouped by row in braces int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } }; int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } }; 1 2 3 4 Row 0 Row 1 1 0 3 4

46 Multiple-Subscripted Arrays
Referenced like normal cout << b[ 0 ][ 1 ]; Outputs 0 Cannot reference using commas cout << b[ 0, 1 ]; Syntax error Function prototypes Must specify sizes of subscripts First subscript not necessary, as with single-scripted arrays void printArray( int [][ 3 ] ); 1 0 3 4

47 Example //print the total of 2D array elements #include<iostream.h> int main () { int a[3][3]={1,2,3,4,5,6,7,8,9}; cout<<"Array a is:\n"; for (int i=0; i<3;i++) for (int j=0;j<3;j++) cout<<a[i][j]<<" "; cout<<endl; }

48 int total=0; for (int i=0; i<3;i++) for (int j=0;j<3;j++) total+= a[i][j]; cout<<“Total of Array elements is:”<<total<<endl return 0; }

49 Example (Passing 2D Arrays to Functions)
#include<iostream.h> void add(int a[3][3], int b[3][3]) { for (int i=0; i<3;i++) for (int j=0;j<3;j++) cout<<(a[i][j]+b[i][j])<<" "; cout<<endl; }

50 int main() { int a[][3]={1,2,3,4,5,6,7,8,9}; int b[][3]={1,2,3,4,5,6,7,8,9}; cout<<"Array a is:\n"; for (int i=0; i<3;i++) for (int j=0;j<3;j++) cout<<a[i][j]<<" "; cout<<endl; }

51 cout<<"\n\nArray b is:\n"; for (int i=0; i<3;i++) { for (int j=0;j<3;j++) cout<<a[i][j]<<" "; cout<<endl; } cout<<"\n\nSum of a & b is array:\n"; add(a,b); return 0;


Download ppt "Data Structure(s) A way of storing and organizing data in a computer so that it can be used efficiently. e.g. Arrays Linked Lists stacks Queues Trees."

Similar presentations


Ads by Google