0% found this document useful (0 votes)
20 views16 pages

Lec1 1

Uploaded by

sametaleb12
Copyright
© © All Rights Reserved
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)
20 views16 pages

Lec1 1

Uploaded by

sametaleb12
Copyright
© © All Rights Reserved
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.

[email protected]
Assessment

Mid exam 25
Final lab exam 15
Home works 20

[email protected]
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.
[email protected]
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.

[email protected]
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.
[email protected]
Introduction
Try extending this
• #include <iostream.h> program to read 1000
integer numbers!!
• void main() Obviously using
• { separate names for
1000 variables and
• int a,b,c,d,e; reading all of them
• cin>>a>>b>>c>>d>>e; using a cin similar to
• the above will not come
cout<<a<<endl<<b<<endl<<c
to the mind of any
• <<endl<<d<<endl<<e<<endl; programmer. This
• } problem is easily
[email protected]
handled using arrays.
Introduction
• #include <iostream.h>
• void main()
• {
• int a[1000],i;
• for (i=0;i<1000;i++)
• {
Program=Algorithms
• cin>>a[i];
+data structures
• }
• for (i=0;i<1000;i++)
• {
• cout<<a[i]<<endl;} }

[email protected]
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)

[email protected]
Data structures

Non-user defined (supported directly by C++)


arrays, enum, struct, union, files

User defined: stacks, queues, trees, linked lists,


graphs, heaps, ...

[email protected]
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.

[email protected]
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;
}
or for(j = 0; j < 12; j++)
cin>>month[j];
[email protected]
ARRAYS
Summing the elements could be achieved with:

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

[email protected]
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];
}
}
[email protected]
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.

[email protected]
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";

[email protected]
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;
• } [email protected]

You might also like