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

C++ Data Structure PDF

1) The document discusses data structures in C++, including arrays. It provides examples of one-dimensional and two-dimensional arrays, explaining how to declare and access elements within the arrays. 2) Various functions are presented for performing operations on one-dimensional arrays like reading from, printing to, searching, inserting, and deleting elements from the arrays. 3) The key aspects of arrays covered are their physical and logical structure in memory, along with advantages of using data structures.

Uploaded by

mohamed hammam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

C++ Data Structure PDF

1) The document discusses data structures in C++, including arrays. It provides examples of one-dimensional and two-dimensional arrays, explaining how to declare and access elements within the arrays. 2) Various functions are presented for performing operations on one-dimensional arrays like reading from, printing to, searching, inserting, and deleting elements from the arrays. 3) The key aspects of arrays covered are their physical and logical structure in memory, along with advantages of using data structures.

Uploaded by

mohamed hammam
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 96

‫هياكل البيانات‬

‫بلغة‬
‫‪C++‬‬
‫محاضرات األدتاذ الفاضل‬
‫م‪.‬م علي عادل الطامري‬

‫إعداد الطالب‬
‫عالء خضير الزيادي‬

‫جامطظ البصرة – كليظ التربيظ‬


‫قدم علوم الحادبات‬
‫الفهرس‬

‫‪2‬‬
Data Structure:
Data:

Information:

Processing Type:

Physical Structure And Logical Structure of Data:

Data Structure :

3
Advantages Of Data Structure:

The Arrays:
One Dimension Arrays :

Ex:
int A[10];
float A[20];

4
Ex:
A[4]
A=[ 2 3 4 5 ]
A[0]=2 , A[1]=3 , A[3]=4 , A[4]=5

Real Address
2
3
4
5

Memory

Loc ( A [ I ] ) = Real Address + I

Loc ( A [ 3 ] ) = 100 + 3 = 103 = 5

#include<iostream.h>
void main()
{
int n,a[100],b[100];
cout<<"Enter n"<<endl;
cin>>n;
5
int k=0;
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
for(i=0;i<n;i++)
if((a[i]>=10)&&(a[i]<=99))
{ b[k]=a[i];
k++;}
for(int j=0;j<k;j++)
cout<<b[j]<<" ";
cin>>"";
}
N

#include<iostream.h>
const int size=100;
void readID(int[],int);
void swap(int[],int);
void count(int[],int);
void printID(int[],int);
void main()
{
int n,a[size],k;
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
swap(a,n);
count(a,n);
}
void readID(int a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void swap(int a[size],int n)
{ int x;
6
if(n%2==0)
x=n/2;
else
x=n/2+1;
int h=x;
for(int i=0;i<x;i++)
{
int z=a[i];
a[i]=a[h];
a[h]=z;
h++;}
printID(a,n);
}
void printID(int a[size],int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<endl;
}
void count(int a[size],int n)
{ int f=0;
for(int i=0;i<n;i++)
{
int item=a[i];
for(int j=i+1;j<n;j++)
{
if(item!=a[j])
f++;
}
cout<<f<<endl;
cin>>"";
}
}
N

#include<iostream.h>
const int size=100;
void readID(char[],int);
void process(char [],int, char [],int&);
void main()
{
7
char a[size],b[size];
int n,k;
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
process(a,n,b,k);
}
void readID(char a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void process(char a[size],int n, char b[size],int &k)
{
k=0;
for(int i=0;i<n;i++)
{
if((a[i]=='*')||(a[i]=='+')||(a[i]=='/')||(a[i]=='-'))
{
b[k]=a[i];
k++;
}
}
for(i=0;i<n;i++)
cout<<b[i]<<endl;
cin>>"";
}

#include<iostream.h>
const int size=100;
void readID(int[],int);
void process(int [],int, int [],int&);
void printID(int[],int);
void main()
{
int a[size],b[size];
8
int n,k;
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
process(a,n,b,k);
printID(b,n);
}
void readID(int a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void process(int a[size],int n, int b[size],int &k)
{
k=0;
for(int i=0;i<n;i++)
{
if((a[i]>0)&&(a[i]%6==0)&&(a[i]%4==0))
{
b[k]=a[i];
k++;}
}
}
void printID(int a[size],int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<endl;
cin>>"";
}

#include<iostream.h>
const int size=100;
void readID(int[],int);
void rep(int [],int,int);
void main()
{
9
int a[size];
int n,x;
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
rep(a,n,x);
}
void readID(int a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void rep(int a[size],int n,int x)
{
int i,c=0;
cout<<"Enter X "<<endl;cin>>x;
for(i=0;i<n;i++)
{
if(a[i]==x)
c++;}
cout<<c;
cin>>"";
}

#include<iostream.h>
const int size=100;
void readID(int[],int);
void swap(int[],int,int&);
void printID(int[],int);
void main()
{
int n,a[size],x;
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
swap(a,n,x);
10
printID(a,n);
}
void readID(int a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void swap(int a[size],int n,int& x)
{cout<<"Enter X"<<endl;
cin>>x;
for(int i=0;i<n;i++)
{
if(x==a[i])
a[i]=5;
}
}
void printID(int a[size],int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<endl;
cin>>"";
}

#include<iostream.h>
const int size=100;
void readID(int[],int);
void avpe(int[],int);
void prod(int[],int);
void main()
{
int n,a[size];
cout<<"Enter n"<<endl;
cin>>n;
readID(a,n);
avpe(a,n);
11
prod(a,n);
}
void readID(int a[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Array :"<<endl;
cin>>a[i];}
}
void avpe(int a[size],int n)
{
int i,s=0,k=0;
for(i=0;i<n;i++)
{
if((a[i]>0)&&(a[i]%2==0))
{k++;
s+=a[i];}
}
float ave=(s/k);
cout<<ave<<endl;
}
void prod(int a[size],int n)
{ int f=1;
for(int i=0;i<n;i++)
f*=a[i];
cout<<f<<endl;
cin>>"";
}

#include<iostream.h>
#include<conio.h>
void main()
{clrscr();
int i,a[100],n;
cout<<"Enter size of array: "<<endl;
cin>>n;
for(i=0;i<n;i++)
{cout<<"Enter the elements: ";
cin>>a[i];}
for(i=n-1;i>=0;i--)
cout<<a[i]<<" ";
12
cin>>" ";
}

#include<iostream.h>
#include<conio.h>
void Read1D(int[]);
void Print1D(int[]);
int Search(int[],int);
void DeleteFirst(int[]);
void DeleteLast(int[]);
void DeleteMid(int[]);
void InsertFirst(int[],int);
void InsertLast(int[],int);
void InsertMid(int[],int);
int size=0;
int totalsize=10;
void main()
{
int ch,a[100],item,loc,ch2;
do
{
cout<<"1-Read1D................."<<endl;
cout<<"2-Print1D................"<<endl;
cout<<"3-Search................."<<endl;
cout<<"4-Delete................."<<endl;
cout<<"5-Insert................."<<endl;
cout<<"0-Exit..................."<<endl;
cout<<"Enter your choise please:"<<endl;
cin>>ch;
if(ch==1)
Read1D(a);
else if(ch==2)
Print1D(a);
else if(ch==3)
{
cout<<"Enter item to search for ?"<<endl;
cin>>item;
13
loc=Search(a,item);
if(loc==-1)
cout<<"Not Found"<<endl;
else
cout<<"Found in : "<<loc<<endl;
}
else if(ch==4)
{
cout<<"Enter 1: Delete First..."<<endl;
cout<<"Enter 2: Delete Mid......"<<endl;
cout<<"Enter 3: Delete Last....."<<endl;
cout<<" Now enter your choise..."<<endl;
cin>>ch2;
if(ch2==1)
{
DeleteFirst(a);
Print1D(a);
}
else if(ch2==2)
{
DeleteMid(a);
Print1D(a);
}
else
{
DeleteLast(a);
Print1D(a);
}
ch2=0;
}
else if(ch==5)
{
cout<<"1: Insert in the First"<<endl;
cout<<"2: Insert in the Mid "<<endl;
cout<<"3: Insert in the Last"<<endl;
cout<<" Enter your choise "<<endl;
cin>>ch2;
if(ch2==1)
{
cout<<"Enter item :"<<endl;
cin>>item;
14
InsertFirst(a,item);
Print1D(a);
}
else if(ch2==2)
{
cout<<"Enter item :"<<endl;
cin>>item;
InsertMid(a,item);
Print1D(a);}
else if(ch2==3)
{
cout<<"Enter item :"<<endl;
cin>>item;
InsertLast(a,item);
Print1D(a);}
ch2=0;
}
}
while(ch!=0);
clrscr();
}
void Read1D(int a[])
{
int i,n;
cout<<"Enter the size of array: "<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Enter elemenet: ";
cin>>a[i];
size++;
}
}
void Print1D(int a[])
{
int i;
for(i=0;i<size;i++)
cout<<" "<<a[i];
cout<<endl;
}
int Search(int a[],int item)
15
{
int i,loc=-1;
for(i=0;i<size;i++)
if(a[i]==item)
loc=i;
return loc;
}
void DeleteFirst(int a[])
{
int i;
if(size>0)
{
for(i=0;i<size;i++)
a[i]=a[i+1];
size--;}
else
cout<<"The Array is empty"<<endl;
}
void DeleteLast(int a[])
{
if(size>0)
size--;
else
cout<<"The Array is empty"<<endl;
}
void DeleteMid(int a[])
{
int i,loc,item;
cout<<"Enter element: ";
cin>>item;
loc=Search(a,item);
if((loc!=0)&&(loc!=size-1)&&(loc!=-1))
{
for(i=loc;i<size;i++)
a[i]=a[i+1];
size--;
}
else
cout<<"Sory you can't delete? "<<endl;
}
void InsertFirst(int a[],int item)
16
{
int i;
if (size<totalsize)
{
for(i=size;i>0;i--)
a[i]=a[i-1];
a[0]=item;
size++;
}
else
cout<<"The Array is full ";
}
void InsertLast(int a[],int item)
{
if(size<totalsize)
{
a[size]=item;
size++;
}
else
cout<<"The Array is full ";
}
void InsertMid(int a[],int item)
{
int i,loc,elm;
if(size<totalsize)
{
loc=Search(a,item);
if((loc!=0)&&(loc!=size-1)&&(loc!=-1))
{
cout<<"Enter element to insert after: "<<endl;
cin>>elm;
for(i=size;i>loc;i--)
a[i]=a[i-1];
a[loc+1]=elm;
size++;
}
else
cout<<"Sory you can't insert !"<<endl;}
else
cout<<"The Array is full ";
17
}
Tow Dimension Arrays:

Ex:
Int A[10][10];
Float A[20][20];

Ex:
A[2][2]
A= 23
56

A[0][0]=2 , A[0][1]=3 , A[1][0]=5 , A[1][1]=6

Access Methods of any item:

18
Logical Structure

a00 a01 ……… a0m


a10 a11 …….... a1m
A= n*m

an0 an1 …........ anm

Physical Structure

Real Address
2
5
3
6

Memory

Loc ( A [i ][j] ) = Real Address + j*m+i

Loc ( A [ 0 ][0] ) = 100 + 0 *2+0= 100 = 2

Real Address

19
2
3

Memory

Loc ( A [ i ][j] ) = Real Address + i*n+j

Loc ( A [1][0] ) = 100 + 1 *2+0= 102 = 5

#include<iostream.h>
const int size=100;
void read2D(int[size][size],int,int);
void sum(int[size][size],int,int,int&);
void countPE(int[size][size],int,int);
void main()
{
int n,m,s,a[size][size];
cout<<"Enter N , M"<<endl;
cin>>n>>m;
read2D(a,n,m);
sum(a,n,m,s);
cout<<s<<endl;
countPE(a,n,m);
}
void read2D(int a[size][size],int n,int m)
{
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
20
{
cout<<"Enter Array 2D :"<<endl;
cin>>a[i][j];}
}
void sum(int a[size][size],int n,int m,int& s)
{
int i,j;
s=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s=s+a[i][j];
}
void countPE(int a[size][size],int n,int m)
{ int c=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if((a[i][j]%2==0)&&(a[i][j]>0))
c++;}
cout<<c<<endl;
cin>>"";
}

N*M

N*M
B=X*A
C=A+B
N*M

#include<iostream.h>
#include<conio.h>
void Read2D(int[10][10],int&,int&);
void Print2D(int[10][10],int&,int&);
21
void Search(int[10][10],int&,int&,int);
void DeleteFirst(int[10][10],int&,int&);
void InsertFirst(int[10][10],int&,int&);
int locr,locc;
void main()
{
clrscr();
int a[10][10],n,m,item,ch;
do
{
cout<<"Enter 1:for Read2D:"<<endl;
cout<<"Enter 2:for print2D:"<<endl;
cout<<"Enter 3:for search:"<<endl;
cout<<"Enter 4:for delete first:"<<endl;
cout<<"Enter 5:for Insert first"<<endl;
cout<<"Enter 0:to stop.";
cin>>ch;
if(ch==1)
Read2D(a,n,m);
if(ch==2)
Print2D(a,n,m);
if(ch==3)
{
cout<<"Enter item to search for ?"<<endl;
cin>>item;
Search(a,n,m,item); }
else if(ch==4)

DeleteFirst(a,n,m);
else if(ch==5)

InsertFirst(a,n,m);
}
while(ch!=0);
}
void Read2D(int a[10][10],int& n,int& m)
{
int i,j;
cout<<"Enter the size of array: "<<endl;
cin>>n>>m;
22
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)

{cout<<"Enter elemenet: ";


cin>>a[i][j];}
cout<<endl;
}
}
void Print2D(int a[10][10],int& n,int& m)
{
int i,j,k;
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
cout<<" "<<a[i][j];
cout<<endl;}
}
void Search(int a[10][10],int& n,int& m,int item)
{
int i,j,f=0;locr=-1;locc=-1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(a[i][j]==item)
{f=1;
locr=i;
locc=j;
}}
if(f==0)
cout<<"Not Found"<<endl;
else
cout<<"Found in :"<<"["<<locr<<"]"<<"["<<locc<<"]"<<endl;
}
void DeleteFirst(int a[10][10],int& n,int& m)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(j==m-1)
a[i][j]=a[i+1][m-j-1];
else
23
a[i][j]=a[i][j+1];
}
a[n-1][m-1]=0;

Print2D(a,n,m);

void InsertFirst(int a[10][10],int& n,int& m)


{
int i,j,item,k1,k2;
cout<<"Enter item"<<endl;
cin>>item;
k1=n;
k2=0;
for(i=n;i>=0;i--)
for(j=m-1;j>=0;j--)
{
a[k1][k2]=a[i][j];
k1=i;
k2=j;
}
a[0][0]=item;
n++;
Print2D(a,n,m);
}

Strings:

1- char name - of - string[size];


2- char *name;

Ex:-
1) char name[35];
2) char *name;

24
<string.h>
strcpy(st1,st2);
n strncpy(st1,st2,n);
strcmp(st1,st2);
strlen(st);
strcat(st1,st2);
strncat(st1,st2,n);
<ctype.h>
isalnum(ch);

isalpha(ch);
islower(ch);
isupper(ch);
isdigit(ch);
struper();
strlwr();
strinv();

#include<iostream.h>
#include<string.h>
void main()
{char st[100],l;
cout<<"Enter st: "<<endl;
cin>>st;
l=strlen(st);
int c=0;
for(int i=0;i<l;i++)
if((st[i]>='0')&&(st[i]<='9'))
c++;
cout<<c;
}

25
#include<iostream.h>
#include<string.h>
void main()
{int i,l;
char st[30];
cout<<"enter string: ";
cin>>st;
l=strlen(st);
i=l/2;
cout<<st[i];
}

#include<iostream.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i,l;
char st[10];
cout<<"enter your string: "<<endl;
cin>>st;
l=strlen(st);
for(i=0;i<l;i++)
{
if(isupper(st[i])!=0)
strlwr(st);
}
for(i=0;i<l;i++)
cout<<st[i];
cin>>" ";
}

#include<iostream.h>
#include<string.h>
#include<ctype.h>
void main()
{
26
int i,l;
char st[10];
cout<<"enter your string: "<<endl;
cin>>st;
l=strlen(st);
for(i=0;i<l;i++)
{
if(islower(st[i])!=0)
strupr(st);
}
for(i=0;i<l;i++)
cout<<st[i];
cin>>" ";
}

#include<iostream.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i,l;
char st[10];
cout<<"enter your string: "<<endl;
cin>>st;
l=strlen(st);
for(i=0;i<l;i++)
if(isdigit(st[i])!=0)
st[i]='*';
for(i=0;i<l;i++)
cout<<st[i];
cin>>" ";
}

#include<iostream.h>
#include<string.h>
void main()
{
27
int i,l,f=0;
char st[100],c;
cout<<"Enter st: "<<endl;
cin>>st;
l=strlen(st);
cout<<"Enter the char for search in the string: "<<endl;
cin>>c;
for(i=0;i<l;i++)
{if(st[i]==c)
f=1;
}
if(f==0)
cout<<"not found ";
else
cout<<"char is found in the string "<<f;
}

#include<iostream.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i,l,cd=0,cl=0;
char st[100];
cout<<"enter your string: "<<endl;
cin>>st;
l=strlen(st);
for(i=0;i<l;i++)
{
if (isdigit(st[i])!=0)
cd++;
else if(islower(st[i])!=0)
cl++;
}
28
cout<<"result "<<cl<<"::"<<cd<<endl;
}

Structure or Recorders:

struct struct - name


{
Data type1 field 1;
Data type2 field 2;
};

Ex:-
struct student
{
char name[30];
int no;
char address[30];
};

#include<iostream.h>
#include<string.h>
const int size=100;
struct student
29
{
char name[35];
int avg;
};
void read(student[],int);
void print(student[],int);
void main()
{
int i,n;
student s[size];
cout<<"Enter N "<<endl;
cin>>n;
read(s,n);
print(s,n);
}
void read(student s[size],int n)
{
int i,c=0;
for(i=0;i<n;i++)
{
cout<<"Enter in formation "<<endl;
cin>>s[i].name>>s[i].avg;
if(s[i].avg>=50)
c++;
}
}
void print(student s[size],int n)
{
int i,c;
for(i=0;i<n;i++)
cout<<s[i].name<<"::"<<s[i].avg<<endl;
cout<<"the sumation succeses :"<<c;
cin>>" ";
}

#include<iostream.h>
#include<string.h>
30
const int size=100;
struct student
{
char name[35],col[35],dep[35];
};
void readrec(student[],int);
void print(student[],int);
void main()
{
int i,n;
student s[size];
cout<<"Enter N :";
cin>>n;
readrec(s,n);
print(s,n);
}
void readrec(student s[size],int n)
{ int i;
for(i=0;i<n;i++)
{
cout<<"Enter The Informaition: "<<endl;
cin>>s[i].name>>s[i].col>>s[i].dep;
}
}
void print(student s[size],int n)
{
int i;
for(i=0;i<n;i++)
{
if((strcmp(s[i].col,"edu")==0)&&(strcmp(s[i].dep,"comp")==0)||(strcmp(s[i].d
ep,"math")==0))
cout<<s[i].name<<endl;}
cin>>" ";
}

creat salary
Phd 1000$
31
Msc 750$
Bsc 500$
DB 350$
SC 200$

(Phd)

#include<iostream.h>
#include<string.h>
const int size=100;
struct emp
{
char name[35],cer[35],add[35];
int deg,yearemp;
float salary;
};
void readrec(emp[],int);
void printrec(emp[],int);
void editrec(emp[],int);
void countrec(emp[],int);
void main()
{ int n;
emp e[size];
cout<<"Enter n :"<<endl;
cin>>n;
readrec(e,n);
printrec(e,n);
editrec(e,n);
countrec(e,n);
}
void readrec(emp e[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter informaiton: "<<endl;
32
cin>>e[i].name>>e[i].deg>>e[i].cer>>e[i].add>>e[i].yearemp;
}
if(strcmp(e[i].cer,"phd")==0)
e[i].salary=1000;
else if(strcmp(e[i].cer,"msc")==0)
e[i].salary=750;
else if(strcmp(e[i].cer,"bsc")==0)
e[i].salary=500;
else if(strcmp(e[i].cer,"db")==0)
e[i].salary=350;
else if(strcmp(e[i].cer,"sc")==0)
e[i].salary=200;
}
void printrec(emp e[size],int n)
{
for(int i=0;i<n;i++)
{
if((e[i].salary>=500)&&(e[i].salary<=1000))

cout<<e[i].name<<e[i].deg<<e[i].salary<<e[i].cer<<e[i].add<<e[i].yearemp<<en
dl;
}
}
void editrec(emp e[size],int n)
{
for(int i=0;i<n;i++)
{
if((2008-e[i].yearemp)>5)
e[i].salary=e[i].salary+(e[i].salary*0.05)
}
}
void countrec(emp e[size],int n)
{
int i,c=0;
for(i=0;i<n;i++)
{
if((strcmp(e[i].add,"basrah")==0)&&(strcmp(e[i],"phd")==0))
c++;
}
cout<<c;
}
33
#include<iostream.h>
#include<string.h>
#include<conio.h>
const int size=100;
struct list
{
char name[35],add[35];
int type;
long no;
};
void readrec(list[],int);
void countrec(list[],int,int &);
void process(list[],int,list[],int);
void main()
{clrscr();
int n,m,c1,c2;
list at[size],as[size];
cout<<"Enter n,m ";
cin>>n>>m;
readrec(at,n);
readrec(as,m);
countrec(at,n,c1);
countrec(as,m,c2);
cout<<c1+c2<<endl;
process(at,n,as,m);
}
void readrec(list r[size],int n)
{
for(int i=0;i<n;i++)
{
cout<<"Enter informaiton: "<<endl;
cin>>r[i].name>>r[i].no>>r[i].add>>r[i].type;
34
}
}
void countrec(list r[size],int n,int & c)
{
int i;
c=0;
for(i=0;i<n;i++)
if((r[i].type)==2)
c++;
}
void process(list r[size],int n,list r1[size],int m)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)

{if((strcmp(r[i].name,r1[j].name)==0)&&(strcmp(r[i].add,r1[j].add)==0))
for(i=0;i<n;i++)

cout<<r[i].name<<r[i].no<<r[i].add<<r[i].type<<endl;
cin>>"";
}
}

Nested Structures :

Name Avg Add No

first , second , third country , city , street

35
struct names
{
char first[30],second[30],third[30];
};
struct address
{
char country[30],city[30],street[30];
};
struct student
{
names name;
float avg;
address add;
int no;
};

void main()
{
student S;
S.name.first;
S.name.second;
S.avg;
S.address.city;
S.address.street; }

N
B

#include<iostream.h>
#include<string.h>
#include<conio.h>
const int size=100;
struct names
{
36
char first[35],family[35];
};
struct address
{
char city[35],street[35];
};
struct student
{names name;
address add;
int no;
};
void readrec(student[],int);
void countr(student[],int);
void main()
{
clrscr();
int n;
student s[size];
cout<<"Enter n ";
cin>>n;
readrec(s,n);
countr(s,n);
}
void readrec(student s[size],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"Enter informaiton: "<<endl;

cin>>s[i].name.first>>s[i].name.family>>s[i].no>>s[i].add.city>>s[i].add.street;
}
void countr(student s[size],int n)
{
int i,c=0;
char ch;
for(i=0;i<n;i++)
{strncpy(ch,s[i].add.city,1);
if(strcmp(ch,'b')!=0)
c++;
}
37
cout<<c;
cin>>"";
}

Pointers :

Ex:
int x ,*xptr;
float y ,*yptr;

xptr=0; (pointer is nothing )


yptr=NULL; (pointer to nothing )

Ex:
int y=5 , *yptr;
yptr= &y;

cout<<yptr;

Notes:
y , * yptr; y
& y , yptr; y
38
*& yptr or &* yptr (*,&)

Call by Value
Call by Reference using Reference Pointer
Call by Reference using Pointer

#include<iostream.h>
void cub1(int);
void cub2(int&);
void cub3(int*);
void main()
{
int x;
cout<<"Enter x"<<endl;
cin>>x;
cub1(x);
cout<< x<<endl;
cub2(x);
cout<< x<<endl;
cub3(&x);
cout<< x<<endl;
cin>>"";
}
void cub1(int x)
{
x=x*x*x;}
void cub2(int& x)
{
x=x*x*x;}
void cub3(int* ptr)
{
*ptr =*ptr * *ptr * *ptr;
39
}

X,Y

#include<iostream.h>
void swap(int *,int *);
void main()
{
int x,y;
cout<<"Enter x , y"<<endl;
cin>>x>>y;
swap(&x,&y);
cout<<x<<y<<endl;
cin>>"";
}
void swap(int* x,int* y)
{
int z;
z=*x;
*x=*y;
*y=z;
}

Pointer and Arrays :

Ex:
aptr=&a[10];
cout<<a[3];
cout<<aptr[3];

Notes
aptr A
40
#include<iostream.h>
void reading(int*,int);
void printing(int*,int);
void main()
{
int a[10],n;
cout<<"Enter n:"<<endl;
cin>>n;
reading(a,n);
printing(a,n);
}
void reading(int*a,int n)
{
for(int i=0;i<n;i++)
{cout<<"Enter A["<<i<<"]=";
cin>>a[i];}
}
void printing(int*x,int n)
{
for(int i=0;i<n;i++)
cout<<*(x+i)<<endl;
cin>>"";
}

Linked Lists :

41
Single Linked list :
head
Ali
tail
Jon

struct node
{
Data type 1 Value1;
Data type 2 Value2;
node * Pointer ;
}

Ex:
struct node
{
char name[30];
float avg;
node* next;
}
42
void main()
{
node* head=NULL, *tail=NULL;

tail head *
New Node
node* np=New node ;

cin>>np->name;
cin>>np->avg;

np->name="Ali";
np->avg=70;

#include<iostream.h>
#include<string.h>
#include<conio.h>
struct node
{
char name[33];
float avg;
node *next;
};
void creat(node*&,node*&);
void print(node*);
void search(node*,node*&,node*&,char[]);
void Delete(node*&,node*&);
void insertFirst(node*&);
void insertLast(node*&);
void insertAfter(node*&,node*&);
void insertBefore(node*&,node*&);
void main()
{
43
clrscr();
int ch;
char item[33];
node* head=NULL,*tail=NULL,*cr,*pr;
do
{
cout<<"Enter 1:for Creat........:"<<endl;
cout<<"Enter 2:for print........:"<<endl;
cout<<"Enter 3:for search.......:"<<endl;
cout<<"Enter 4:for delete.......:"<<endl;
cout<<"Enter 5:for Insert first.:"<<endl;
cout<<"Enter 6:for Insert Last..:"<<endl;
cout<<"Enter 7:for Insert After.:"<<endl;
cout<<"Enter 8:for Insert Before:"<<endl;
cout<<"Enter 0:to Exit..........:"<<endl;
cin>>ch;
if(ch==1)
creat(head,tail);
if(ch==2)
print(head);
if(ch==3)
search(head,cr,pr,item);
if(ch==4)
Delete(head,tail);
if(ch==5)
insertFirst(head);
if(ch==6)
insertLast(tail);
if(ch==7)
insertAfter(head,tail);
if(ch==8)
insertBefore(head,tail);
}
while(ch!=0);
}
void creat(node*&head,node*&tail)
{
float av;
cout<<"Enter Avg "<<endl;
cin>>av;
while(av>NULL)
44
{
node *np=new node;
cout<<"Enter Name "<<endl;
cin>>np->name;
np->avg=av;
if(head==NULL)
head=np;
else
tail->next=np;
tail=np;
tail->next=NULL;
cout<<"Enter New Avg "<<endl;
cin>>av;
}
}
void print(node *head)
{
while(head!=NULL)
{
cout<<head->name<<":" <<head->avg<<endl;
head=head->next;
}
}
void search(node*head,node*&cr,node*&pr,char item[])
{
cout<<"Enter item For search "<<endl;
cin>>item;
pr=0;
cr=head;
while((strcmp(cr->name,item)!=0)&&(cr!=0))
{
pr=cr;
cr=cr->next;
}
if(cr!=0)
cout<<" Found "<<endl;
else
cout<<" Not Found "<<endl;
}
void Delete(node*&head,node*&tail)
{
45
node*cr,*pr;
char item[33];
search(head,cr,pr,item);
if(cr!=0)
{
if(cr==head)
head=head->next;
else
if(cr==tail)
{
tail=pr;
tail->next=0;
}
else
pr->next=cr->next;
delete(cr);
}
print(head);
}
void insertFirst(node*&head)
{
float av;
char name;
node*np=new node;
cout<<"Enter name"<<endl;
cin>>np->name;
cout<<"Enter avg"<<endl;
cin>>av;
np->avg=av;
np->next=head;
head=np;
print(head);
}
void insertLast(node*&tail)
{
float av;
char name;
node*np=new node;
cout<<"Enter name"<<endl;
cin>>np->name;
cout<<"Enter avg"<<endl;
46
cin>>av;
np->avg=av;
tail->next=np;
tail=np;
np->next=0;
}
void insertAfter(node*&head,node*&tail)
{
float av;
char name,item[33];
node *cr,*pr;
search(head,cr,pr,item);
if(cr!=0)
{
if((cr!=head)&&(cr!=tail))
{
node*np=new node;
cout<<"Enter name"<<endl;
cin>>np->name;
cout<<"Enter avg"<<endl;
cin>>av;
np->avg=av;
pr->next=np;
np->next=cr;
}
else
cout<<"But ? Found in First or Last Pleese Tray agein"<<endl;
}
else
cout<<" Pleese Tray agein"<<endl;
print(head);
}
void insertBefore(node*&head,node*&tail)
{
float av;
char name,item[33];
node *cr, *pr;
search(head,cr,pr,item);
if(cr!=0)
{
if((cr!=head)&&(cr!=tail))
47
{
node*np=new node;
cout<<"Enter name"<<endl;
cin>>np->name;
cout<<"Enter avg"<<endl;
cin>>av;
np->avg=av;
pr=cr;
cr=cr->next;
pr->next=np;
np->next=cr;
}
else
cout<<"But ? Found in First or Last Pleese Tray agein"<<endl;
}
else
cout<<" Pleese Tray agein"<<endl;
print(head);
}

#include<iostream.h>
#include<string.h>
#include<conio.h>
struct node
{
char name[33];
float avg;
node *next;
};
struct snode
{
char name[33];
snode *next;
};
void creat(node*&,node*&);
void gen(node*,snode*&,snode*&);
void print(snode*);
void main()
48
{clrscr();
node* head=NULL,*tail=NULL;
snode* shead=NULL,*stail=NULL;
creat(head,tail);
gen(head,shead,stail);
print(shead);
}
void creat(node*&head,node*&tail)
{
float av;
cout<<"Enter Avg "<<endl;
cin>>av;
while(av>NULL)
{
node *np=new node;
cout<<"Enter Name "<<endl;
cin>>np->name;
np->avg=av;
if(head==NULL)
head=np;
else
tail->next=np;
tail=np;
tail->next=NULL;
cout<<"Enter New Avg "<<endl;
cin>>av;

}
}
void gen(node*head,snode*&shead,snode*&stail)
{
while(head!=0)
{
if(head->avg>=50)
{
snode *np=new snode;
strcpy(np->name,head->name);
if(shead==0)
shead=np;
else
stail->next=np;
49
stail=np;
stail->next=0;
}
head=head->next;
}
}
void print(snode *head)
{
while(head!=NULL)
{
cout<<head->name<<endl;
head=head->next;}
cin>>"";
}

P
A B C D

#include<iostream.h>
#include<string.h>
#include<conio.h>
struct node
{
char name[33];
node *next;
};
void creat(node*&,node*&);
void deleteP(node*&);
void insertFirst(node*&);
void print(node*);
void main()
{clrscr();
node* head=0,*tail=0;
creat(head,tail);
50
deleteP(head);
insertFirst(head);
print(head);
}
void creat(node*&head,node*&tail)
{
char name[33];
cout<<"Enter name "<<endl;
cin>>name;
while(strcmp(name,"end")!=0)
{
node *np=new node;
strcpy(np->name,name);
if(head==0)
head=np;
else
tail->next=np;
tail=np;
tail->next=0;
cout<<"Enter New name "<<endl;
cin>>name;
}
}
void deleteP(node*&head)
{
node *np,*p;
np=head->next;
p=head->next->next;
np->next=p->next;
delete(p);
}
void insertFirst(node*&head)
{
char name;
node*np=new node;
cout<<"Enter name For Insert First"<<endl;
cin>>np->name;
np->next=head;
head=np;
}
void print(node *head)
51
{
while(head!=0)
{
cout<<head->name<<endl;
head=head->next;}
cin>>"";
}

#include<iostream.h>
#include<conio.h>
struct node
{
int num;
node*next;
};
void main()
{
clrscr();
node *tail,*head,*k,*p;
int i=1,n;
cout<<"Enter number :"<<endl;
cin>>n;
node*np=new node;
cout<<"Enter num :"<<endl;
cin>>np->num;
np->next=NULL;
tail=head=np;
while(i<n)
{
node*np=new node;
cout<<"Enter new num :"<<endl;
cin>>np->num;
np->next=NULL;
tail->next=np;
i++;
tail=np;
}
np=head;
52
k=new node;
k->num=head->num;
k->next=NULL;
p=k;
np=np->next;
while(np!=NULL)
{
k=new node;
k->num=np->num;
k->next=p;
p=k;
np=np->next;
}
np=p;
while(np!=NULL)
{
cout<<np->num<<" ";
np=np->next;
}
cin>>"";
}

Double Linked List :


Next
Back

head
Next
tail
Back

struct Dnode
{
53
Data type 1 Value1;
Data type 2 Value2;
Dnode * next , *back ;
}

#include<string.h>
#include<iostream.h>
#include<conio.h>
struct Dnode
{
char name[33];
float avg;
Dnode *next,*back;
};
void creat(Dnode*&,Dnode*&);
void print(Dnode*);
void printinv(Dnode*);
void search(Dnode*,Dnode*&,Dnode*&,char[]);
void Delete(Dnode*&,Dnode*&);
void insertFirst(Dnode*&);
void insertLast(Dnode*&);
void insertBefore(Dnode*&,Dnode*&);
void insertAfter(Dnode*&,Dnode*&);
void main()
{
clrscr();
int ch;
char item[33];
Dnode* head=NULL,*tail=NULL,*cr,*pr;
do
{
cout<<"Enter 1:for Creat........:"<<endl;
54
cout<<"Enter 2:for print........:"<<endl;
cout<<"Enter 3:for printInv.....:"<<endl;
cout<<"Enter 4:for search.......:"<<endl;
cout<<"Enter 5:for delete.......:"<<endl;
cout<<"Enter 6:for Insert first.:"<<endl;
cout<<"Enter 7:for Insert Last..:"<<endl;
cout<<"Enter 8:for Insert Before:"<<endl;
cout<<"Enter 9:for Insert After.:"<<endl;
cout<<"Enter 0:to Exit..........:"<<endl;
cin>>ch;
if(ch==1)
creat(head,tail);
if(ch==2)
print(head);
if(ch==3)
printinv(tail);
if(ch==4)
search(head,cr,pr,item);
if(ch==5)
Delete(head,tail);
if(ch==6)
insertFirst(head);
if(ch==7)
insertLast(tail);
if(ch==8)
insertBefore(head,tail);
if(ch==9)
insertAfter(head,tail);
}
while(ch!=0);
}
void creat(Dnode*&head,Dnode*&tail)
{
float av;
cout<<"Enter Avg "<<endl;
cin>>av;
while(av>NULL)
{
Dnode *np=new Dnode;
cout<<"Enter Name "<<endl;
cin>>np->name;
55
np->avg=av;
if(head==NULL)
{
head=np;
head->back=0;
}
else
{
tail->next=np;
np->back=tail;
}
tail=np;
tail->next=NULL;
cout<<"Enter New Avg "<<endl;
cin>>av;
}
}
void print(Dnode *head)
{
while(head!=NULL)
{
cout<<head->name<<": "<<head->avg<<endl;
head=head->next;
}
}
void printinv(Dnode *tail)
{
while(tail!=0)
{
cout<<tail->name<<": "<<tail->avg<<endl;
tail=tail->back;
}
}
void search(Dnode*head,Dnode*&cr,Dnode*&pr,char item[])
{
cout<<"Enter item For search "<<endl;
cin>>item;
pr=0;
cr=head;
while((strcmp(cr->name,item)!=0)&&(cr!=0))
{
56
pr=cr;
cr=cr->next;
}
if(cr!=0)
cout<<" Found "<<endl;
else
cout<<" Not Found "<<endl;
}
void Delete(Dnode*&head,Dnode*&tail)
{
Dnode*cr,*pr;
char item[33];
search(head,cr,pr,item);
if(cr!=0)
{
if(cr==head)
{
head=head->next;
head->back=0;
}
else
if(cr==tail)
{
tail=pr;
tail->next=0;
}
else
pr->next=cr->next;
cr->next->back=pr;
delete(cr);
}
print(head);
}
void insertFirst(Dnode*&head)
{
float av;
char name;
Dnode*np=new Dnode;
cout<<"Enter Name For Insert First"<<endl;
cin>>np->name;
cout<<"Enter Avg"<<endl;
57
cin>>av;
np->avg=av;
head->back=np;
np->next=head;
head=np;
np->back=0;
}
void insertLast(Dnode*&tail)
{
float av;
char name;
Dnode*np=new Dnode;
cout<<"Enter Name For Insert Last"<<endl;
cin>>np->name;
cout<<"Enter Avg"<<endl;
cin>>av;
np->avg=av;
tail->next=np;
np->back=tail;
tail=np;
np->next=0;
}
void insertBefore(Dnode*&head,Dnode*&tail)
{
float av;
char name,item[33];
Dnode *cr,*pr;
search(head,cr,pr,item);
if(cr!=0)
{
if((cr!=head)&&(cr!=tail))
{
Dnode*np=new Dnode;
cout<<"Enter Name For Insert After"<<endl;
cin>>np->name;
cout<<"Enter Avg"<<endl;
cin>>av;
np->avg=av;
pr->next=np;
np->next=cr;
cr->back=np;
58
np->back=pr;
}
else
cout<<"But ? In First or Last Pleese Tray agein"<<endl;
}
else
cout<<" Pleese Tray agein"<<endl;
print(head);
}
void insertAfter(Dnode*&head,Dnode*&tail)
{
float av;
char name,item[33];
Dnode *cr, *pr;
search(head,cr,pr,item);
if(cr!=0)
{
if((cr!=head)&&(cr!=tail))
{
Dnode*np=new Dnode;
cout<<"Enter Name For Insert Before"<<endl;
cin>>np->name;
cout<<"Enter Avg"<<endl;
cin>>av;
np->avg=av;
pr=cr;
cr=cr->next;
pr->next=np;
np->next=cr;
cr->back=np;
np->back=pr;
}
else
cout<<"But ? In First or Last Pleese Tray agein"<<endl;
}
else
cout<<" Pleese Tray agein"<<endl;
print(head);
}

59
#include<iostream.h>
#include<string.h>
#include<conio.h>
struct cnode
{
char name[33];
float avg;
cnode *next;
};
void creat(cnode*&,cnode*&);
void print(cnode*,cnode*);
void main()
{
clrscr();
cnode* head=NULL,*tail=NULL;
creat(head,tail);
print(head,tail);
}
void creat(cnode*&head,cnode*&tail)
{
float av;
cout<<"Enter Avg "<<endl;
cin>>av;
while(av>0)
{
cnode *np=new cnode;
cout<<"Enter Name "<<endl;
cin>>np->name;
np->avg=av;
if(head==NULL)
head=np;
else
tail->next=np;
tail=np;
tail->next=NULL;
60
cout<<"Enter Avg "<<endl;
cin>>av;
}
tail->next=head;
}
void print(cnode *head,cnode *tail)
{
while(head!=tail)
{
cout<<head->name<<":" <<head->avg<<endl;
head=head->next;
}
cout<<tail->name<<":" <<tail->avg<<endl;
cin>>"";
}

Stack:

Sp Top

LIFO
Push

top=0 top=1 top=2 top=3

C
item item B item B
A A B A C A

size= 3
stack is over flow
Pop

61
top=3 top=2 top=1 top=0

C
B item B item item
A C A B A A

stack is under flow

#include<iostream.h>
#include<conio.h>
const int size=5;
void push(int[],int&,int);
void pop(int[],int&,int&);
void main()
{
clrscr();
int stack[size],top=0,item,i;
for(i=0;i<size;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack,top,item);
}
for(i=0;i<size;i++)
{
pop(stack,top,item);
cout<<item<<" ";
}
cin>>"";
}
void push(int stack[size],int& top,int item)
{
if(top<size)
{
top++;
stack[top]=item;
}
62
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}

#include<iostream.h>
#include<conio.h>
const int size=5;
void push(int[],int&,int);
void pop(int[],int&,int&);
void main()
{
clrscr();
int stack[size],top=0,item,i,stack2[size],top2=0,c=0;
for(i=0;i<size;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack,top,item);
}
for(i=0;i<size;i++)
{
pop(stack,top,item);
if(item>=50)
c++;
push(stack2,top2,item);
}
for(i=0;i<size;i++)
63
{
pop(stack2,top2,item);
push(stack,top,item);
}
for(i=0;i<size;i++)
{
pop(stack,top,item);
cout<<item<<endl;
}
cout<<"The Sucess Count : "<<c<<endl;
cin>>"";
}
void push(int stack[size],int& top,int item)
{
if(top<size)
{
top++;
stack[top]=item;
}
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}

64
#include<iostream.h>
#include<conio.h>
const int size=15;
void push(int[],int&,int);
void pop(int[],int&,int&);
void print(int[],int);
void main()
{
clrscr();
int stack1[size],stack2[size],stack3[size],stack4[size];
int top1=0,top2=0,top3=0,top4=0,i,item;
for(i=0;i<10;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack1,top1,item);
}
for(i=0;i<5;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack2,top2,item);
}
for(i=0;i<10;i++)
{
pop(stack1,top1,item);
if(item%2==0)
{
push(stack3,top3,item);
push(stack4,top4,item);
}}
for(i=0;i<5;i++)
{
pop(stack2,top2,item);
if(item%3==0)
push(stack4,top4,item);
if(item%2==0)
push(stack3,top3,item);
}
print(stack3,top3);
print(stack4,top4);
65
cin>>"";
}
void push(int stack[size],int& top,int item)
{
if(top<size)
{
top++;
stack[top]=item;
}
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}
void print(int stack[],int top)
{
int item;
while(top>0)
{
pop(stack,top,item);
cout<<item<<endl;
}
}

#include<iostream.h>
#include<conio.h>
const int size=10;
void push(int[],int&,int);
void pop(int[],int&,int&);
struct node
66
{
int no;
node *next;
};
void main()
{
clrscr();
int stack[size],top=0,item,i;
node *head=0,*tail=0;
for(i=0;i<size;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack,top,item);
}
for(i=0;i<size;i++)
{
pop(stack,top,item);
if((item>9)&&(item<100))
{
node *np=new node;
np->no=item;
if(head==0)
head=np;
else
tail->next=np;
tail=np;
tail->next=0;
}
}
while(head!=0)
{
cout<<head->no<<endl;
head=head->next;
}
cin>>"";
}
void push(int stack[size],int& top,int item)
{
if(top<size)
{
67
top++;
stack[top]=item;
}
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}

#include<iostream.h>
#include<conio.h>
const int size=6;
void push(int[],int&,int);
void pop(int[],int&,int&);
void print(int[],int,int);
void main()
{
clrscr();
int stack[size],top=0,stack2[size],top2=0,I,j,item,a[size];
for(i=0;i<size;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack,top,item);
}
for(i=0;i<size;i++)
{
pop(stack,top,item);
a[i]=item;
}
68
for(i=0;i<size;i++)
{
item=a[i];
for(j=i+1;j<size;j++)
{
if(item==a[j])
push(stack2,top2,item);
}
}
print(stack2,top2,item);
cin>>"";
}
void push(int stack[size],int& top,int item)
{
if(top<size)
{
top++;
stack[top]=item;
}
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}
void print(int stack2[size],int top2,int item)
{
int I;
for(i=0;i=top2;i++)
{
pop(stack2,top2,item);
cout<<item<<" ";
}
}
69
#include<iostream.h>
#include<conio.h>
const int size=10;
void push(int[],int&,int);
void pop(int[],int&,int&);
void print(int[],int,int);
int test(int);
int pri(int);
void main()
{
clrscr();
int stack[size],top=0,item,i,n,comp[size],top2=0,prim[size],top3=0;
cout<<"Enter Size "<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cout<<"enter item"<<endl;
cin>>item;
push(stack,top,item);
}
for(i=0;i<n;i++)
{
pop(stack,top,item);
if((test(item))==1)
push(comp,top2,item);
if((pri(item))==0)
push(prim,top3,item);
}
cout<<" .............. The Compelement Number "<<endl;
print(comp,top2,item);
cout<<" .............. The Prime Number "<<endl;
print(prim,top3,item);
70
cin>>"";
}
void push(int stack[size],int& top,int item)
{
int n;
if(top<n)
{
top++;
stack[top]=item;
}
else
cout<<"FULL STACK!!"<<endl;
}
void pop(int stack[size],int& top,int& item)
{
if(top>0)
{
item=stack[top];
top--;
}
else
cout<<"EMPTY STACK??"<<endl;
}
int test(int item)
{
int f=0,s=0,i;
for(i=1;i<=item-1;i++)
{
if(item%i==0)
s+=i;
}
if(s==item)
f=1;
return f;
}
int pri(int item)
{
int f=0,i;
for(i=2;i<item;i++)
{
if(item%i==0)
71
f=1;
}
return f;
}
void print(int stack[size],int top,int item)
{
while(top>0)
{
pop(stack,top,item);
cout<<item<<endl;
}}

Recartion :

if ( stop - condition)
Msg Box (" stop ")
else
(continue)
{
Reccall the same procedure which contain same process.
}

no n s *

8 3 ? *
72
push
7 2 ? * push
0 0 * 8 3 ? *
3 1 ? *
7 2 ? *
8 3 ? *

3 1 ? *
7 2 ? *
8 3 ? *
push push

pop

*
? *
pop
? *
7 2 10 *
8 3 ? *
pop
pop
8 2 18 *
Empty

#include<iostream.h>
#include<conio.h>
void sum(int n,int no,int& s)
{
if(n==0)
s=0;
else
{
cout<<"Enter No"<<endl;
cin>>no;
sum(n-1,no,s);
73
s+=no;
}
}
void main()
{
clrscr();
int s,no,n;
cout<<"Enter Of Size"<<endl;
cin>>n;
sum(n,no,s);
cout<<s;
cin>>""; }

N!
#include<iostream.h>
int fact(int a)
{
if(a==0)
return 1;
else
return a*fact(a-1);
}
void main()
{
int f,n;
cout<<"Enter N!"<<endl;
cin>>n;
f=fact(n);
cout<<f;
cin>>"";
}

#include<iostream.h>
#include<conio.h>
const int size=10;
void sum(int a[size],int n,int& s)
{
if(n==0)
74
s=0;
else
{
cout<<"Enter a[n]"<<endl;
cin>>a[n];
sum(a,n-1,s);
if((a[n]%2==0)&&(a[n]>0))
s+=a[n];
}
}
void main()
{
clrscr();
int s,b[size],m;
cout<<"Enter m"<<endl;
cin>>m;
sum(b,m,s);
cout<<s;
cin>>"";
}

#include<iostream.h>
#include<conio.h>
const int size=10;
void print(int a[size],int n)
{
if(n==0)
cout<<"Print of array"<<endl;
else
{
cout<<"Enter a[n]"<<endl;
cin>>a[n];
print(a,n-1);
cout<<a[n]<<endl;
}
}
void main()
{
clrscr();
int a[size],n;
75
cout<<"Enter Of Size"<<endl;
cin>>n;
print(a,n);
cin>>"";
}

#include<iostream.h>
const int size=100;
struct student
{
char name[35];
int avg;
};
void sum(student s[size],int n,int& c)
{
if(n==0)
c=0;
else
{cout<<"Enter in formation "<<endl;
cin>>s[n].name>>s[n].avg;
sum(s,n-1,c);
if(s[n].avg>=50)
c++;}
}
void main()
{
int n,c;
student s[size];
cout<<"Enter N "<<endl;
cin>>n;
sum(s,n,c);
cout<<" the sucess: "<<c;
cin>>" ";
}

76
void print(node *head)
{
if(head!=0)
{
head=head->next;
print(head);
cout<<head->No<<endl;
}
}

N
#include<iostream.h> xii yii
#include<math.h>
void sum(int x,int y,int n,int&s) i=0
{
if(n<=0)
s=0;
else
{
sum(x,y,n-1,s);
s=s+pow(x,n)*pow(y,n);
}
}
void main()
{
int x,y,n,s;
cout<<"Enter N "<<endl;
cin>>n;
cout<<"Enter x & y "<<endl;
cin>>x>>y;
sum(x,y,n,s);
cout<<s;
cin>>"";
}

N
#include<iostream.h>
77
#include<conio.h>
const int size=10;
void Max(int,int,int &);
void main()
{
clrscr();
int no,n,max,i;
cout<<"Enter N :"<<" ";
cin>>n;
cout<<"---------------------"<<endl;
Max(n,no,max);
cout<<"\n The Max Number is: "<<max;
cin>>" ";
}
void Max(int n,int no,int &max)
{
if(n==0)
max=0;
else
{
cout<<"Enter No:- "<<" ";
cin>>no;
max=no;
Max(n-1,no,max);
if(no>max)
max=no;
}
}

N 9
#include<iostream.h>
#include<conio.h>
float sum(int n,int no,float& s,float av)
{
if(n==0)
s=0;
else
{
cout<<"Enter No"<<endl;
cin>>no;
78
sum(n-1,no,s,av);
s+=no;
}
return s;
}
void main()
{
clrscr();
int no,n;
float av,s;
cout<<"Enter The N "<<endl;
cin>>n;
sum(n,no,s,av);
av=s/n;
cout<<"The Sumation "<<s<<endl;
cout<<" The Average "<<av;
cin>>"";
}

s=1/2 + 1/4 + 2/8 + 3/16 + 5/32 + 8/64 ……… N ?

#include<iostream.h>
#include<math.h>
#include<conio.h>
int f,s,t;
void sum(int n,float& sn)
{
if(n==0)
{
sn=0.0;
f=1;
s=1;}
else
{
sum(n-1,sn);
sn+=(f/pow(2,n));
cout<<f<<"/"<<pow(2,n)<<endl;
t=f+s;
f=s;
s=t;
79
}
}
void main()
{
clrscr();
int n;
float sn;
cout<<"Enter N "<<endl;
cin>>n;
sum(n,sn);
cout<<"The Sum= "<<sn;
cin>>"";
}

s= 4/1 + 5/1 + 6/2 + 7/3 ……. N ?

#include<iostream.h>
#include<conio.h>
int t,s;
float f;
void sum(int n,float& sn)
{
if(n==0)
{
sn=0.0;
f=1;
s=1;}
else
{
sum(n-1,sn);
sn+=((3+n)/f);
cout<<3+n<<"/"<<f<<endl;
t=f+s;
f=s;
s=t;
}
}
void main()
{
clrscr();
80
int n;
float sn;
cout<<"Enter N "<<endl;
cin>>n;
sum(n,sn);
cout<<"The Sum= "<<sn;
cin>>"";
}

Queues :

tail head

Insert

head=0 head=1 head=1 head=1


tail=0 tail=1 tail=2 tail=3

A A A
Add Add B Add B
A B C C

size= 3
Queue is over flow

Delete

head=1 head=2 head=3 head=1


tail=3 tail=3 tail=3 tail=1

A C
B Del B Del Add D
C A C B C D
C

81
head=1
tail=2

#include<iostream.h>
#include<conio.h>
const int size=4;
void insert(char[],int &,int &,char);
void Delete(char[],int &h,int &,char &);
void main()
{
clrscr();
int t=0,h=0;
char q[size],item;
for(int i=1;i<=size;i++)
{
cout<<"Enter item "<<endl;
cin>>item;
insert(q,h,t,item);
}
Delete(q,h,t,item);
Delete(q,h,t,item);
for(int j=1;j<=size;j++)
cout<<".........."<<q[j]<<endl;
cin>>"";
}
void insert(char q[size],int &h,int &t,char item)
{
if((t-h+1)!=size)
{
if(h==0)
82
{
h=1;
t=0;
}
else
{
if(t==size)
{
for(int i=1;i<=t-h+1;i++)
q[i]=q[h+i-1];
t=t-h+1;
h=1;
}
}
t++;
q[t]=item;
}
else
cout<<" Queue is Full "<<endl;
}
void Delete(char q[size],int &h,int &t,char &item)
{
if(h!=0)
{
item=q[h];
q[h]=0;
if(t==h)
h=0;
else
h++;
}
else
cout<<" Queue is Empty "<<endl;
}

#include<iostream.h>
#include<conio.h>
83
const int size=10;
void insert(char[],int &,int &,int);
void Delete(char[],int &,int &,int &);
void print(char[],int ,int ,int);
int prim(int);
void main()
{
clrscr();
int t=0,h=0,t2=0,h2=0,item;
char q[size],q2[size];
for(int i=1;i<=size;i++)
{
cout<<"Enter item "<<endl;
cin>>item;
insert(q,h,t,item);
}
for(int j=1;j<=size;j++)
{
Delete(q,h,t,item);
if(prim(item)==0)
insert(q2,h2,t2,item);
}
print(q2,h2,t2,item);
}
void insert(char q[size],int &h,int &t,int item)
{
if((t-h+1)!=size)
{
if(h==0)
{
h=1;
t=0;
}
else
{
if(t==size)
{
for(int i=1;i<=t-h+1;i++)
q[i]=q[h+i-1];
t=t-h+1;
h=1;
84
}
}
t++;
q[t]=item;
}
else
cout<<" Queue is Full "<<endl;
}
void Delete(char q[size],int &h,int &t,int &item)
{
if(h!=0)
{
item=q[h];
q[h]=0;
if(t==h)
h=0;
else
h++;
}
else
cout<<" Queue is Empty "<<endl;
}
int prim(int item)
{
int f=0,i;
for(i=2;i<item;i++)
{
if(item%i==0)
f=1;
}
return f;
}
void print(char q[size],int h,int t,int item)
{
for(int j=1;j<t;j++)
{
Delete(q,h,t,item);
cout<<".........."<<item<<endl;
}
cin>>"";
}
85
#include<iostream.h>
#include<conio.h>
const int size=10;
void insert(char[],int &,int &,int);
void Delete(char[],int &,int &,int &);
void print(char[],int ,int ,int);
int test(int);
void main()
{
clrscr();
int t=0,h=0,t2=0,h2=0,item;
char q[size],q2[size];
for(int i=1;i<=size;i++)
{
cout<<"Enter item "<<endl;
cin>>item;
insert(q,h,t,item);
}
for(int j=1;j<=size;j++)
{
Delete(q,h,t,item);
if(test(item)==1)
insert(q2,h2,t2,item);
}
print(q2,h2,t2,item);
}
void insert(char q[size],int &h,int &t,int item)
{
if((t-h+1)!=size)
{
if(h==0)
{
h=1;
t=0;
}
else
{
86
if(t==size)
{
for(int i=1;i<=t-h+1;i++)
q[i]=q[h+i-1];
t=t-h+1;
h=1;
}
}
t++;
q[t]=item;
}
else
cout<<" Queue is Full "<<endl;
}
void Delete(char q[size],int &h,int &t,int &item)
{
if(h!=0)
{
item=q[h];
q[h]=0;
if(t==h)
h=0;
else
h++;
}
else
cout<<" Queue is Empty "<<endl;
}
int test(int item)
{
int s=0,i;
for(i=1;i<item;i++)
{
if(item%i==0)
s+=i;
}
if(s==item)
return 1;
return 0;
}
void print(char q[size],int h,int t,int item)
87
{
for(int j=1;j<t;j++)
{
Delete(q,h,t,item);
cout<<".........."<<item<<endl;
}
cin>>"";
}

Queue Circular :

. tail head

A Add A Add A

B C B

#include<iostream.h>
#include<conio.h>
const int size=4;
void insert(char[],int &,int &,char);
void Delete(char[],int &,int &,char &);
void print(char[],int ,int ,char);
void main()
{
clrscr();
int t=0,h=0;
char q[size],item;
88
for(int i=1;i<=size;i++)
{
cout<<"Enter item "<<endl;
cin>>item;
insert(q,h,t,item);
}
print(q,h,t,item);
}
void insert(char q[size],int &h,int &t,char item)
{
if(((t-h+1)!=size)&&(t-h+1)!=0)
{
if(h==0)
{
h=1;
t=0;
}
else
if(t==size)
t=0;
t++;
q[t]=item;
}
else
cout<<" Queue is Full "<<endl;
}
void Delete(char q[size],int &h,int &t,char &item)
{
if(h!=0)
{
item=q[h];
q[h]=0;
if(h==t)
{
h=0;
t=0;}
else
h++;
if(h>size)
h=1;
}
89
else
cout<<" Queue is Empty "<<endl;
}
void print(char q[size],int h,int t,char item)
{
for(int j=1;j<=size;j++)
{
Delete(q,h,t,item);
cout<<".........."<<q[j]<<endl;
}
cin>>""; }

| ~

#include<iostream.h>
#include<conio.h>
const int size=4;
void insert(char[],int &,int &,char);
void Delete(char[],int &,int &,char &);
void print(char[],int ,int ,char);
void main()
{
clrscr();
int t=0,h=0,t2=0,h2=0;
char q[size],q2[size],item;
for(int i=1;i<=size;i++)
{
cout<<"Enter item "<<endl;
cin>>item;
insert(q,h,t,item);
}
for(i=1;i<=size;i++)
{
Delete(q,h,t,item);
if((item=='&')||(item=='|')||(item=='!')||(item=='~'))
insert(q2,h2,t2,item);
}
print(q2,h2,t2,item);
}
90
void insert(char q[size],int &h,int &t,char item)
{
if(((t-h+1)!=size)&&(t-h+1)!=0)
{
if(h==0)
{
h=1;
t=0;
}
else
if(t==size)
t=0;
t++;
q[t]=item;
}
else
cout<<" Queue is Full "<<endl;
}
void Delete(char q[size],int &h,int &t,char &item)
{
if(h!=0)
{
item=q[h];
q[h]=0;
if(h==t)
{
h=0;
t=0;}
else
h++;
if(h>size)
h=1;
}
else
cout<<" Queue is Empty "<<endl;
}
void print(char q[size],int h,int t,char item)
{
for(int j=1;j<=size;j++)
{
Delete(q,h,t,item);
91
cout<<".........."<<q[j]<<endl;
}
cin>>"";
}

Files

ofstream file nameP("path of file ",mod);

Ex: "c:/ali.txt"

ifstream file nameP("path of file ",mod);

fstream file nameP("path of file ",mod);


92
#include<fstream.h>
file nameP.close();
file nameP.eof();

c:/ txt
#include<iostream.h>
#include<fstream.h>
void main()
{
char name[35];
int no;
float avg;
ofstream in("c:/new.data");
cout<<"Enter avg"<<endl; cin>>avg;
while(avg>0)
{
cout<<"Enter no & name"<<endl;
cin>>no>>name;
in<<no<<" "<<name<<" "<<avg<<endl;
cout<<"Enter new avg"<<endl; cin>>avg;
}
in.close();
cin>>"";
}
c:/ txt

#include<iostream.h>
#include<fstream.h>
void main()
{
char name[35];
int no;
float avg;
ifstream out("c:/new.txt");
int c=0;
while(out.eof()==0)
93
{
out>>no>>name>>avg;
if(avg>=50)
c++;
}
cout<<c;
cin>>"";
out.close();
}

ios :: app
Ex: fstream file("path",ios::app);

ios :: ate
ios :: in
ios :: out
ios :: noreplace
ios :: nocreat
ios :: trunc

#include<iostream.h>
#include<fstream.h>
94
#include<string.h>
void main()
{
char name[35],add[35],stage[35],dep[35];
fstream first("c:/student1.txt",ios::out|ios::in);
fstream second("c:/student2.txt",ios::out);
cout<<"Enter Name"<<endl; cin>>name;
while(strcmp(name,"end")!=0)
{
cout<<"Enter Information:"<<endl;
cin>>add>>stage>>dep;
first<<name<<" "<<add<<" "<<stage<<" "<<dep<<endl;
if((strcmp(add,"basra")==0)&&(strcmp(dep,"computer")==0))
second<<name<<" "<<add<<" "<<stage<<" "<<dep<<endl;
cout<<"Enter name:"<<endl; cin>>name;
}
first.close();
second.close();
}

95
96

You might also like