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

Objective: Revision of Data Structures and Their Implementation

The document discusses data structures and their implementation. It provides an overview of arrays in C/C++ including how to declare and access array elements, perform operations like summing elements, searching arrays, and shifting elements. Program design requires both algorithms and appropriate data structures. Basic data types in C include integers, characters, floats, and pointers, while common non-user defined data structures are arrays, enums, structs, unions and files. User-defined structures include stacks, queues, trees, linked lists, graphs and heaps.

Uploaded by

Dhiraj Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views

Objective: Revision of Data Structures and Their Implementation

The document discusses data structures and their implementation. It provides an overview of arrays in C/C++ including how to declare and access array elements, perform operations like summing elements, searching arrays, and shifting elements. Program design requires both algorithms and appropriate data structures. Basic data types in C include integers, characters, floats, and pointers, while common non-user defined data structures are arrays, enums, structs, unions and files. User-defined structures include stacks, queues, trees, linked lists, graphs and heaps.

Uploaded by

Dhiraj Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Objective

Revision of data structures and their implementation.

Assessment
First exam Second exam Participation and attendance 20 20 10

Introduction
Throughout this course examples will be given in C++. Most of the time its non-object-oriented features will be used and only in the few problems that will have to be implemented as classes, its object-oriented features will be used. The language is only being used as a means of expressing the algorithms. It should be realized that implementation could be in any modern high level language as they all tend to have equivalent features.

Introduction
It should also be pointed out that in the examples concentration is on the algorithms and not the specific details required for execution. Thus the pre-processor directives and the variable declaratives will not be included in the examples except where necessary.

Introduction
As a C/C++ programmer , you are already familiar with data types like int, char, float etc. These are basic building blocks of a programming language. For real world programming problems, it would not be possible to use basic data types alone.
For example consider the following C++ program which reads 5 integer numbers using cin and then print them out using cout.

Introduction
#include <iostream.h> void main() { int a,b,c,d,e; cin>>a>>b>>c>>d>>e; cout<<a<<endl<<b<<endl<<c <<endl<<d<<endl<<e<<endl; }
Try extending this program to read 1000 integer numbers!! Obviously using separate names for 1000 variables and reading all of them using a cin similar to the above will not come to the mind of any programmer. This problem is easily handled using arrays.

Introduction
#include <iostream.h> void main() { int a[1000],i; for (i=0;i<10000;i++) { cin>>a[i]; } for (i=0;i<10000;i++) { cout<<a[i]<<endl;} }

Program=Algorithms +data structures

C-DATA TYPES AND DATA STRUCTURE CLASSIFICATION

Basic data types Internal level: bits, bytes (8 bits) and Words (typically 32 bits) Program level: char (signed/unsigned) float (signed/unsigned) double(signed/unsigned) int (signed/unsigned) short int (signed/unsigned) long int (signed/unsigned) pointers (short/far)

Data structures
Non-user defined (supported directly by C) arrays, enum, struct, union, files

User defined: stacks, queues, trees, linked lists, graphs, heaps, ...

ARRAYS
A one dimensional array Allows a set of data of a specified type to be held in a structure where the individual elements can be accessed by referral to a common variable name and their element number. e.g. int month[12]; is a declarative specifying an array that can hold 12 integers. In C++ the element numbers are from 0 - 11. An individual integer can be referred to by its position: so that month[7] refers to the 8th element in the array. REMEMBER that the positions start at 0.

ARRAYS
Most compilers will initialize the elements to zero automatically (but always play on the safe side and do it yourself if necessary!). Values can be assigned to the elements either through the use of assignment statements or with input statements. e.g. val = 36; for(j=0;j<12;j++) { month[j] = val; val = val - 2; } for(j = 0; j < 12; j++) cin>>month[j];

or

ARRAYS
Summing the elements could be achieved with:

sum = 0; for(j = 0; j < 12; j++) sum = sum + month[j];

ARRAYS
A double dimension array can be declared as : int sales[5][12]
The above declaration defines an array with 5 rows and 12 columns. Input could be: for(i = 0; i < 5; i++) { cout<<"Input the monthly sales for salesperson "<<i+1<<endl; for(j = 0; j < 12; j++) { cout<<"Month "<<j+1; cin>>sales[i][j]; } }

ARRAYS
Adding all the columns could be: int sumcol[12]; for(j=0;j<12;j++) { sumcol[j] = 0; for (i=0;i<5;i++) sumcol[j] = sumcol[j] + sales[i][j]; }

Note that this routine puts the column sums into the array sumcol.

ARRAYS
Searching for a target: int num[10], flag=0, target, i; cin>>target; for (i=0;i<10;i++) { if (nums[i] == target) {flag = 1;break;} } if (flag == 1) cout<<"Target found"; else cout<<"Target not found";

ARRAYS
Shifting elements of an array to the right and putting the last element to the first position: #include<iostream.h> void main() { int num[5],i,val; for (i=0;i<5;i++) cin>>num[i]; val=num[4]; for (i=3;i>=0;i--) num[i+1] = num[i]; num[0] =val; for (i=0;i<5;i++) cout<<num[i]<<endl; }

You might also like