You are on page 1of 17

JAIPUR NATIONAL

UNIVERSITY
JAGATPURA, JAIPUR
SADTM CAMPUS

Master of Computer Application


MCA-3rd Sem

Daa lab - 353

Submitted by- Submitted to-


Sir gaurav

MCA – III Semester


LAB ASSIGNMENT
INDEX
Sl. List of Programs Date Date Remarks
No. Allotted Submitted
1

Q 1. C program for TOWER OF HANOI?

ANS>>

#include<stdio.h>
#include<conio.h>
void TowerOfHanoi(int n, char x,char y,char z)
{
if(n==1)
{
printf("\n\n Move %c to %c",x,z);
return ;
}
TowerOfHanoi(n-1,x,z,y);
printf("\n\n Move %c to %c",x,z);
TowerOfHanoi(n-1,y,x,z);
}

void main()
{
int n;
char x='X',y='Y',z='Z';
clrscr();
printf("\n\n Enter no of disks");
scanf("%d",&n);
TowerOfHanoi(n,x,y,z);
getch();
}

Output:

Enter no of disks:3
Move A to C

Move A to B

Move C to B

Move A to C

Move B to A

Move B to C

Move A to C
Q 2. C program for find the MIN and MAX element in array
using divide and conquer method?

ANS>>

#include<stdio.h>
#include<conio.h>
int a[100],max=100,min=100;
void minmax(int,int);
void main()
{
int n,i;
clrscr();
printf("\nEnter the size of list : ");
scanf("%d",&n);
printf("\nEnter %d elements in the list : ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
minmax(0,n-1);
printf("\nList element's are :- ");
for(i=0;i<n;i++)
printf("\n%d",a[i]);
printf("\n\nMaximum element is %d : Minimum element is %d ",max,min);
getch();
}
void minmax(int i,int n)
{
int mid,max1,min1;
if(i==n)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}
else
{
mid=(i+n)/2;
minmax(i,mid);
minmax(mid+1,n);
}
}

Output:

enter total numbers:5

enter elements in the array:

8
4
7
1
3

maximum=8
minimum=1

Q 3. C program for find the permutation of string?

ANS>>

#include<conio.h>
#include<stdio.h>
void perm(char arr[],int,int);
void main()
{
char arr[]={'a','b','c'};
clrscr();
perm(arr,0,2);
getch();
}
void perm(char arr[],int k,int n)
{
char temp;
int i;
if(k==n)
{
for(i=0;i<=n;i++)
printf("%c",arr[i]);
printf("\n");
}
else
{
for(i=k;i<=n;i++)
{
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
perm(arr,k+1,n);
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
}

Output:

abc
acb
bac
bca
cba
cab

Q 4.C program for perform HEAP SORT on given elements?

ANS>>

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 20
void heapsort(int a[],int );
void adjust(int heap[],int ,int );
void heapfy(int a[],int );
void main()
{
int i,n,a[MAX];
clrscr();
printf("\nEnter size of array::");
scanf("%d",&n);
if(n>MAX)
{
printf("\nInput size of array greater than declared size\n");
exit(1);
}
printf("\n enter elements in the array:");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
heapsort(a,n);
printf("\n\nSorted list of elemets\n\n");
for(i=1;i<=n;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
getch();
}
void heapsort(int a[],int n)
{
int i,temp;
heapfy(a,n);
for(i=n;i>1;i--)
{
temp=a[1];
a[1]=a[i];
a[i]=temp;
adjust(a,1,i-1);
}
}
void adjust(int a[],int start,int finish)
{
int index,lchild,rchild,maximum,temp;
lchild = 2 * start;
rchild = lchild + 1;
if(lchild<=finish)
{
maximum=a[lchild];
index=lchild;
if(rchild<=finish)
{
if(a[rchild]>maximum)
{
maximum=a[rchild];
index=rchild;
}
}
if(a[start]<a[index])
{
temp=a[start];
a[start]=a[index];
a[index]=temp;
adjust(a,index,finish);
}
}
}
void heapfy(int a[],int n)
{
int i,index;
index = n/2;
for(i=index;i>=1;i--)
adjust(a,i,n);
}

Output:

Enter size of array::5

enter elements in the array:


4
8
3
9
7

Sorted list of elements

3 4 7 8 9

Q 5.C program for perform the sorting operation on elements


by MERGE SORT method ?

ANS>>

#include<conio.h>
#include<stdio.h>
void merge_sort(int a[],int b,int e);
void merge(int a[],int lb,int le,int rb,int re);
int lb,le,rb,re,n;
void main()
{
int a[20],i,b,e;

clrscr();
printf("enter the value of n");
scanf("%d",&n);
printf("Enter the arrays/n");

for(i=0;i<n;i++)
scanf("%d",&a[i]);
merge_sort(a,0,n-1);
for(i=0;i<n;i++)
printf("%d\n",a[i]);
getch();

}
void merge_sort(int a[],int b,int e)
{
int m,i;
if(b<e)
{
m=(b+e)/2;
merge_sort(a,b,m);
merge_sort(a,m+1,e);
merge(a,b,m,m+1,e);
}

}
void merge(int a[],int lb,int le,int rb,int re)
{

int n1,n2,n3,i,j,k;
int c[20];
n1=lb;
n2=rb;
n3=lb;
while((n1<=le) && (n2<=re))
{
if(a[n1]<a[n2])
c[n3]=a[n1++];
else
c[n3]=a[n2++];
n3++;
}
if(n1>le)
{
while(n2<=re)
c[n3++]=a[n2++];
}
else
{
while(n1<=le)
c[n3++]=a[n1++];
}
for(k=lb;k<=re;k++)
a[k]=c[k];
}

Output:

enter the value of n5


Enter the arrays
3
7
1
2
5

1
2
3
5
7

Q 6. C program to find shortest path among the matrix?

ANS >>

#include<stdio.h>
#include<conio.h>

#define infinity 9999


#define size 10

int a[size][size];
int m[size][size];
int i,j,k;
int n;

void println()
{

printf("\n=========================================================
==================\n");
}

void input()
{
printf("\n\t\t\t\tInput Data");
println();

printf("\nEnter the number of rows in the matrix : ");


scanf("%d",&n);

printf("\nEnter elements of adjacency matrix...\n\n");

for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("Element %d%d : ",i+1,j+1);
scanf("%d",&a[i][j]);
}

println();
}

void shortest()
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(a[i][j]==0)
m[i][j]=0;
else
m[i][j]=a[i][j];
}

for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(m[i][j] <= (m[i][k] + m[k][j]))
{
m[i][j] = m[i][j];
}
else
{
m[i][j] = m[i][k] + m[k][j];
}
}
}
}
}

void output()
{
printf("\nThe shortest path matrix by implementing Warshall algorithm is...\n");
println();
printf("\n");

printf("\t\t");

for(i=0;i<n;i++)
printf("%d\t" , i+1);

printf("\n----------|-----------------------------------------------------\n");

for(i=0;i<n;i++)
{
printf("\n\t%d |",i+1);

for(j=0;j<n;j++)
{
printf("\t%d",m[i][j]);
}

printf("\n");
}

printf("\n----------|-----------------------------------------------------\n");
}
void main()
{
clrscr();

println();
printf("\t\t\tShortest Path Warshall algorithm");
println();

printf("\n");

input();
shortest();
output();

println();
getch();
}

OUTPUT >>

You might also like