Data Structure Lab: ER NO:-191B317

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

DATA STRUCTURE LAB

18B17CI371

LAB RECORD

Submitted By

Rahul Singh

ER NO:-191B317

Submitted to: KB Meena Sir

2020-2021

Department of Computer Science & Engineering


Jaypee University of Engineering and Technology, A-B Road,
Raghogarh, Di stt. - Guna (M.P.), PIN - 473226, INDIA
LAB 1: REVISIT
1. WAP to find out largest element of an array
Sol:- ///////////////////this program is developed by 191B317//////////////////////////
#include<bits/stdc++.h>
using namespace std;
int max_element(int a[],int n)
{
int max=a[0];
for(int i=1;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
return max;

}
int main()
{
int m;
cout<<"enter the size of array:";
cin>>m;
int arr[m];
cout<<"enter the array elements:";
int i=0;
for(;i<m;i++)
{
cin>>arr[i];
}
cout<<"maximum element in the array is:"<<max_element(arr,m);

///// Program developed by Rahul Singh (191B317)


QUE2: WAP to search an element in array.
///////////////////program developed by Rahul Singh(191B317)
#include<bits/stdc++.h>
using namespace std;
void search_element(int a[],int n ,int l)
{
int i;
for( i=0;i<l;i++)
{
if(a[i]==n)
{
cout<<"element found at:"<<i+1<<endl;
break;
}
}
if (i==l) cout<<"not found"<<endl;
}
int main()
{
int m,x;
cout<<"enter the size of array:";
cin>>m;
int arr[m];
cout<<"enter the array elements:";
int i=0;
for(;i<m;i++)
{
cin>>arr[i];
}
cout<<"enter the elements to be searched:";
cin>>x;
search_element(arr,x,m);
}
Que 3: WAP to check whether the number is prime or not.
///This Program is developed by Rahul Singh (191B317)
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n)
{
if (n <= 1)
return 0;
for (int i = 2; i < n; i++)
if (n % i == 0)
return 0;
return 1;
}
int main()
{
int no;
cin>>no;
isPrime(no) ? cout<<"it is prime"<<endl : cout <<"it is not prime"<<endl;
}

QUE4: WAP to calculate x^y where x and y are two integer numbers entered
by the user. [do not use pow() function]
///program developed by Rahul Singh(191B317)
#include <bits/stdc++.h>
using namespace std;
int power(int m, int n)
{
int ans=1;
while (n != 0)
{
ans *= m;
--n;
}
return ans;
}
int main()
{
int x,y;
cout << "enter x and y";
cin >>x>>y;

cout<<"resut is="<<power(x,y)<<endl;
}
Que5: WAP to replace a character by another character in a string.
Take both the choice from the user.
///program developed by Rahul Singh(191B317)
#include <bits/stdc++.h>
using namespace std;
void alter_str(char m,char n,string str1)
{
for(int i=0;i<str1.length();i++)
{
if(str1[i]==m)
{
str1[i]=n;
}
}
cout<<"altered string is:"<<str1<<endl;
}
int main()
{
string str;
char a,b;
cout<<"enter the string:";
cin>>str;
cout<<"enter the character to be replaced:";
cin>>a;
cout<<"enter the character to be replaced with:";
cin>>b;
alter_str(a,b,str);
}

Que 6: WAP to find the reverse of given string.


///program developed by Rahul Singh(191B317)
#include <bits/stdc++.h>
using namespace std;
void rev_str(string str1)
{
for(int i=str1.length()-1;i>=0;i--)
{
cout<<str1[i];
}

}
int main()
{
string str;
cout<<"enter the string:";
cin>>str;
rev_str(str);
return 0;
}

Que7: WAP to sort the array and ask the choice from user for
ascending/descending.
///program developed by Rahul Singh(191B317)
#include <bits/stdc++.h>
#define rep(i,n) for (i = 0; i < n; i++)
#define REPR(i,k,n) for (i = k; i >= n; --i)
using namespace std;
void asc_desc(int array[],int l)
{
int j;
rep(j,l)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
j = -1;
}
}
int op;
cout<<"enter 1 for ascending and 0 for descending order resptively:";
cin>>op;
if(op)
{
rep(j,l) cout<<array[j]<<" ";
}
else
{
REPR(j,l-1,0)cout<<array[j]<<" ";
}
}
int main()
{
int m,i;
cin>>m;
int arr[m];
cout<<"enter the array elements:";
rep(i,m)cin>>arr[i];
asc_desc(arr,m);

QUE 8: WAP to find a word in given statement.


// This program is developed by Rahul Singh(191B317)
#include<iostream>
using namespace std;

void getZarr(string str, int Z[]);

void search(string text, string pattern)


{

string concat = pattern + "$" + text;


int l = concat.length();

int Z[l];
getZarr(concat, Z);

for (int i = 0; i < l; ++i)


{

if (Z[i] == pattern.length())
cout << "Pattern found at index "
<< i - pattern.length() -1 << endl;
}
}

void getZarr(string str, int Z[])


{
int n = str.length();
int L, R, k;

L = R = 0;
for (int i = 1; i < n; ++i)
{

if (i > R)
{
L = R = i;

while (R<n && str[R-L] == str[R])


R++;
Z[i] = R-L;
R--;
}
else
{

k = i-L;

if (Z[k] < R-i+1)


Z[i] = Z[k];

else
{
L = i;
while (R<n && str[R-L] == str[R])
R++;
Z[i] = R-L;
R--;
}
}
}
}

int main()
{
string text;
string pattern ;
getline(cin,text);
getline(cin,pattern);

search(text, pattern);
return 0;
}
QUE9:WAP to concatenate two strings using pointer.
//// this program is developed by Rahul Singh(191B317)
#include <iostream>
#define MAX_SIZE 100
using namespace std;
void concatenate(char l1[MAX_SIZE], char l2[MAX_SIZE])
{
char * s1 = l1;
char * s2 = l2;
while(*(++s1));
while(*(s1++) = *(s2++));

cout<<"Concatenated string:"<<l1;
}

int main() {

char str1[MAX_SIZE], str2[MAX_SIZE];

cout<<"Enter 1st string: ";


cin>>str1;
cout<<"Enter 2nd string: ";
cin>>str2;
concatenate(str1,str2);

}
Que 10: WAP to create a dynamic array of user desired size and search an
element in that array
//// this program is developed by Rahul Singh(191B317)
#include<bits/stdc++.h>
using namespace std;
void find_no(vector<int>vect)
{
int n;
cout<<"enter the no you want to find";
cin>>n;
int c=0;
for(auto x:vect)
{
c++;
if(x==n)
{
cout<<"found at:"<<c;
break;
}
}
}
int main()
{
vector<int> v;
int n;
cout<<" how many nos you want to enter";
cin>>n;
cout<<"enter elements";
for(int i=0;i<n;i++)
{
int no;
cin>>no;
v.push_back(no);
}
find_no(v);
}
QUE11: WAP to calculate difference between two time periods using the C
structures. Sample output: Enter start time: Enter hours, minutes and
seconds respectively:= 8 :12 :15 Enter stop time: Enter hours, minutes and
seconds respectively: 12 34 55 TIME DIFFERENCE: 12:34:55 - 8:12:15 = 4:22:40
//// this program is developed by Rahul Singh(191B317)
#include <bits/stdc++.h>
using namespace std;

struct TIME
{
int seconds;
int minutes;
int hours;
};

void computeTimeDifference(struct TIME, struct TIME, struct TIME *);

int main()
{
struct TIME t1, t2, difference;

cout << "Enter start time." << endl;


cout << "Enter hours, minutes and seconds respectively: ";
cin >> t1.hours >> t1.minutes >> t1.seconds;

cout << "Enter stop time." << endl;


cout << "Enter hours, minutes and seconds respectively: ";
cin >> t2.hours >> t2.minutes >> t2.seconds;

computeTimeDifference(t1, t2, &difference);

cout << endl << "TIME DIFFERENCE: " << t1.hours << ":" << t1.minutes << ":
" << t1.seconds;
cout << " - " << t2.hours << ":" << t2.minutes << ":" << t2.seconds;
cout << " = " << difference.hours << ":" << difference.minutes << ":" << d
ifference.seconds;
return 0;
}
void computeTimeDifference(struct TIME t1, struct TIME t2, struct TIME *differ
ence){

if(t2.seconds > t1.seconds)


{
--t1.minutes;
t1.seconds += 60;
}
difference->seconds = t1.seconds - t2.seconds;
if(t2.minutes > t1.minutes)
{
--t1.hours;
t1.minutes += 60;
}
difference->minutes = t1.minutes-t2.minutes;
difference->hours = t1.hours-t2.hours;
}

QUE-12: WAP to add two complex numbers by passing structure to


a function. Sample output: For 1st complex number Enter real and
imaginary part respectively: 2.3 4.5 For 2nd complex number Enter
real and imaginary part respectively: 3.4 5 Sum = 5.7 + 9.5i

//// this program is developed by Rahul Singh(191B317)


#include <bits/stdc++.h>

using namespace std;


typedef struct complexNumber {
float real;
float imag;
};
complexNumber addCN(complexNumber num1,complexNumber num2) {
complexNumber temp;
temp.real = num1.real + num2.real;
temp.imag = num1.imag + num2.imag;
return(temp);
}
int main() {
complexNumber num1, num2, sum;
cout << "Enter real part of Complex Number 1: " << endl;

cin >> num1.real;


cout << "Enter imaginary part of Complex Number 1: " << endl;

cin >> num1.imag;


cout << "Enter real part of Complex Number 2: " << endl;

cin >> num2.real;


cout << "Enter imaginary part of Complex Number 2: " << endl;

cin >> num2.imag;


sum = addCN(num1, num2);
if(sum.imag >= 0)
cout << "Sum of the two complex numbers is "<< sum.real <<" + "<< sum.imag
<<"i";
else
cout << "Sum of the two complex numbers is "<< sum.real <<" + ("<< sum.imag
<<")i";
return 0;
}

You might also like