0% found this document useful (0 votes)
26 views51 pages

Data Structure Lab

Uploaded by

aayushpotdar25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views51 pages

Data Structure Lab

Uploaded by

aayushpotdar25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

LAB MANUAL

FOR
DATA STRUCTURE
USING C

Prepared by,
Sunita Debbarma
Lecturer
Computer Science & Technology Department

DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY

WOMEN’S POLYTECHNIC
HAPANIA, AGARTALA, TRIPURA WEST – 799130, INDIA
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

1.
Aim: To display fibounacci series up to a range.
#include<stdio.h>
#include<conio.h>

void main()
{
int a,b,c,n;
clrscr();
printf("\nEnter range:");
scanf("%d",&n);
a=0,b=1,c=0;
printf("%d \t %d",a,b);
c=a+b;
while(c<=n)
{
printf("\t%d",c);
a=b;
b=c;
c=a+b;
}
getch();
}

Output:

2.
Aim: To read n numbers and display it.
#include<stdio.h>
#include<conio.h>

void main()
{
int i,n, a[10];
clrscr();
printf(“\nEnter the number of element : \n”);
scanf(“%d”,&n);

2
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

printf(“Enter element: \n”);


for(i=0;i<n;i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,&a[i]);
}
printf(“\n Display array element: \n”);
for(i=0;i<n;i++)
{
printf(“a[%d]=%d\n”,i,a[i]);

}
getch();
}

Output:

3.
Aim: To demonstrate the concept of one dimentional array finding the sum of array
elements.

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

void main()

3
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
int i,n, a[10],s;
clrscr();
printf(“Enter the number of element :\n”);
scanf(“%d”,&n);
s=0;
printf(“Enter element:\n”);
for(i=0;i<n;i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,&a[i]);
s=s+a[i];
}
printf(“Sum of arrary element:%d”,s);
getch();
}

Output:

4.
Aim: To insert an element in an array.
#include<stdio.h>
#include<
{
int i,n,pos,num, a[10];
clrscr();
printf(“Enter the number of element :\n”);
scanf(“%d”,&n);
printf(“Enter element:\n”);
for(i=0;i<n;i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,&a[i]);

4
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

}
printf(“\nEnter the pos where the no. is to be inserted :”);
scanf(“%d”,&pos);
printf(“\nEnter the the no. is to be inserted :”);
scanf(“%d”,&num);
for(i=n-1;i>=pos;i--)
a[i+1]=a[i];
n=n+1;
a[pos]=num;
printf(“\n Display array after insertion:\n”);
for(i=0;i<n;i++)
{
printf(“a[%d]=%d\n”,i,a[i]);
}
getch();
}

Output:

5.
To delete an element from an array.

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

void main()
{

5
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

int i,n,pos, a[10];


clrscr();
printf("Enter the number of elements :\n");
scanf("%d",&n);
printf("Enter element: \n ");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\nEnter the pos from which the no. has to be deleted :");
scanf("%d",&pos);
for(i=pos;i<n;i++)
a[i]=a[i+1];
n=n-1;
printf("\n Displar array after deletion: \n ");
for(i=0;i<n;i++)
{
printf("\n a[%d]=%d",i,a[i]);
}
getch();
}

Output:

6.
6
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

Aim: To add two matrix A and B.


#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,m,n,p,q;
int a[10][10], b[10][10], c[10][10];
clrscr();
printf("\nEnter no of rows and column of matrixA:");
scanf("%d%d",&m,&n);
printf("\nEnter no of rows and column of matrixB:");
scanf("%d%d",&p,&q);
if(m!=p && n!=q)
{
printf("\n Matrix cannot be added.");
exit(0);
}
printf("\n Matrix can be added");
printf("\n Enter elements of matrix A:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("\n Enter elements of matrix B:");
for(i=0;i<p;i++)
for(j=0;j<q;j++)
scanf("%d",&b[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\n Display matrix A:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("\n Display matrix B:\n");
for(i=0;i<p;i++)
{
for(j=0;j<q;j++)
printf("%d\t",b[i][j]);
printf("\n");
}
printf("\n Display matrix C:\n");
for(i=0;i<p;i++)

7
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

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

Output:

8
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

7.(Assignment-1) Write a program to subtract two matrix A and B.

8.

Aim: To multiply two matrix A and B.


#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,m,n,p,q,k;
int a[10][10], b[10][10], c[10][10];
clrscr();
printf("\nEnter no of rows and column of matrixA:");
scanf("%d%d",&m,&n);
printf("\nEnter no of rows and column of matrixB:");
scanf("%d%d",&p,&q);
printf("\n Enter elements of matrix A:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("\n Enter elements of matrix B:\n");
for(i=0;i<p;i++)

9
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

for(j=0;j<q;j++)
scanf("%d",&b[i][j]);
if(n==p)
{
for(i=0;i<m;i++)
for(j=0;j<q;j++)
{
c[i][j]=0;
for(k=0;k<n;k++)
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
else
{
printf("\n Matrix cannot be multiplied");
exit(1);
}
printf("\n Display matrix A:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("\n Display matrix B:\n");
for(i=0;i<p;i++)
{
for(j=0;j<q;j++)
printf("%d\t",b[i][j]);
printf("\n");
}
printf("\n Display Product:\n");
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
printf("%d\t",c[i][j]);
printf("\n");
}
getch();
}

Output:
10
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

9.
Aim: To Concatenate two string.
#include<stdio.h>
#include<conio.h>
#include<string.h>

void main()
{
char str[20],str1[20],str2[20];
int i,j;
clrscr();
i=j=0;
printf("\n Enter 1st string:");

11
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

scanf("%s",&str);
printf("\n Enter 2nd string:");
scanf("%s",&str1);
while(str[i]!='\0')
{
str2[i]=str[i];
i++;
}

while(str1[j]!='\0')
{
str2[i]=str1[j];
i++;
j++;
}
str2[i]='\0';
printf("\n Resultant string is:%s",str2);
getch();
}

Output:

10.
Aim: To copy a string into another string.
#include<stdio.h>
#include<conio.h>
#include<string.h>

void main()
{

12
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

char str[20],str1[20];
int i ;
clrscr();
i=0;
printf("\n Enter string to copy:");
scanf("%s",&str);
while(str[i]!='\0')
{
str1[i]=str[i];
i++;
}

str1[i]='\0';
printf("\n The Destination string is:%s",str1);
getch();
}

Output:

11.

Aim: Implementation of linked list using array.


#include<stdio.h>
#include<conio.h>
#define TRUE 1
#define SIZE 10
struct link
{
int info;
int next;
};
struct link node[SIZE];

13
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

int Getnode();
void Createlist();
void Freenode(int);
void Display();
void Insert(int,int);
void Delete(int);
int p, avail=0;
void main()
{
int ch=1,i,n,x;
clrscr();
/*Creation of available list*/
for(i=0;i<SIZE-1;i++)
node[i].next=i+1;
node[SIZE-1].next=-1;
printf("\n Create a List:");
Createlist();
while(ch!=4)
{
printf("\n1-DISPLAY");
printf("\n2-INSERT");
printf("\n3-DELETE");
printf("\n4-QUIT");
printf("\n Enter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1 :
Display();
break;
case 2:
printf("\n Node insertion:after which node:");
scanf("%d",&n);
p=n;
printf("\n Enter the item for insertion:");
scanf("%d",&x);
Insert(p,x);
break;
case 3:
printf("\n Enter the node after which the node will be deleted:");
scanf("%d",&n);
p=n;
Delete(p);
break;
case 4:
break;
default:

14
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

printf("\n Wrong choice!Try again:");


}
}
}
int Getnode()
{
if (avail==-1)
{
printf("\n Overflow:");
exit(0);
}
p=avail;
avail=node[avail].next;
return p;
}
void Freenode(int q)
{
node[q].next=avail;
avail=q;
return;
}
void Createlist()
{
int x;
char c;
p=Getnode();
printf("\n Enter an item to be inserted:");
scanf("%d", &x);
node[p].info=x ;
node[p].next=-1;
while(TRUE)
{
printf("\n Enter the choice(y/n):");
fflush(stdin);
c=getchar();
if(c=='y'||c=='Y')
{
printf("\n Enter an item to be inserted:");
scanf("%d",&x);
Insert(p,x);
node[p].next= -1;
}
else
return;
}
}
void Display()

15
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
p=0;
while(node[p].next!=-1)
{
printf("\n%d\t%d\t%d:",p,node[p].info,node[p].next);
p=node[p].next;
}
printf("\n%d\t%d\t%d:",p,node[p].info,node[p].next);
}
void Insert(int r,int x)
{
int q;
if(r==-1)
{
printf("\n void insertion:");
return;
}
q=Getnode();
node[q].info=x;
node[q].next=node[r].next;
node[r].next=q;
return;
}
void Delete(int r)
{
int q;
if(r==-1||node[r].next==-1)
{
printf("\n void deletion:");
return;
}
q=node[r].next;
node[r].next=node[q].next;
Freenode(q);
return;

Output:

16
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

17
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

12.

Aim: Implementation of stack using array.


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAXSTK 100
int top=-1;
int items[MAXSTK];
int Isempty();
int Isfull();
void Push(int);
int Pop();
void Display();
void main()
{
int x;
char ch='1';
clrscr();
while(ch!='4')
{
printf("\n 1-PUSH");

18
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

printf("\n 2-POP");
printf("\n 3-DISPLAY");
printf("\n 4-QUIT");
printf("\n Enter your choice:");
fflush(stdin);
ch=getchar();
switch(ch)
{
case '1':
printf("\n Enter the element to be pushed:");
scanf("%d",&x);
Push(x);
break;
case '2':
x=Pop();
printf("\n Pop element is %d\n:",x);
break;
case '3':
Display();
break;
case '4':
break;
default:
printf("\n Wrong choice!Try again:");
}
}
}
int Isempty()
{
if(top==-1)
return 1;
else
return 0;
}
int Isfull()
{
if(top==MAXSTK-1)
return 1;
else
return 0;
}
void Push(int x)
{
if(Isfull())
{
printf("\n Stack full");
return;

19
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

}
top++;
items[top]=x;
}
int Pop()
{
int x;
if(Isempty())
{
printf("\n Stack empty");
exit(0);
}
x=items[top];
top--;
return x;
}
void Display()
{
int i;
if(Isempty())
{
printf("\n Stack empty");
return;
}
printf("\n Elements in the Stack are :\n");
for(i=top;i>=0;i--)
printf("%d\n",items[i]);
}
Output:

20
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

21
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

13.

Aim: To Create fibonacci series using recursive function.


#include<stdio.h>
#include<conio.h>
int Fibonacci(int);
void main()
{
int i,n;
clrscr();
printf("\n Enter the no of elements to be displayed:");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d\t",Fibonacci(i));
getch();
}
int Fibonacci(int n)
{
if(n<=0)
return 0;
else if (n==1)
return 1;
else
return Fibonacci(n-1)+ Fibonacci(n-2);
}

Output:

14.

Aim: Calculate factorial of a number using recursive function.


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

22
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

int Factorial(int);
void main()
{
int i,n;
clrscr();
printf("\n Enter the no of elements:");
scanf("%d",&n);
printf("Factorial of %d is %d",n,Factorial(n));
getch();
}
int Factorial(int n)
{
if(n==0)
return 1;
else
return n*Factorial(n-1);
}

Output:

15.

Aim: Implementation of queue using array.


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAXQ 100
int front=0,rear=-1;
int items[MAXQ];
int Isempty();
int Isfull();
void Insert(int);
int Delete();
void Display();
void main()
{
int x;

23
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

char ch='1';
clrscr();
while(ch!='4')
{
printf("\n 1-INSERT");
printf("\n 2-DELETE");
printf("\n 3-DISPLAY");
printf("\n 4-QUIT");
printf("\n Enter your choice:");
fflush(stdin);
ch=getchar();
switch(ch)
{
case '1':
printf("\n Enter the element to be inserted:");
scanf("%d",&x);
Insert(x);
break;
case '2':
x=Delete();
printf("\n Delete element is %d\n:",x);
break;
case '3':
Display();
break;
case '4':
break;
default:
printf("\n Wrong choice!Try again:");
}
}
getch();
}
int Isempty()
{
if(rear<front)
return 1;
else
return 0;
}
int Isfull()
{
if(rear==MAXQ-1)
return 1;
else
return 0;
}

24
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

void Insert(int x)
{
if(Isfull())
{
printf("\n Queue full");
return;
}
rear++;
items[rear]=x;
}
int Delete()
{
int x;
if(Isempty())
{
printf("\n Queue is empty");
exit(0);
}
x=items[front];
front++;
return x;
}
void Display()
{
int i;
if(Isempty())
{
printf("\n Queue is empty");
return;
}
printf("\n Elements in the Queue are :\n");
for(i=front;i<=rear;i++)
printf("%d\n",items[i]);
}
Output:

25
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

26
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

16.

Aim: Implementation of circular queue using array.


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAXQ 100
int front=-1,rear=-1;
int items[MAXQ];
int Isempty();
int Isfull();
void Insert(int);
int Delete();
void Display();
void main()
{
int x;
char ch='1';
clrscr();
while(ch!='4')

27
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
printf("\n 1-INSERT");
printf("\n 2-DELETE");
printf("\n 3-DISPLAY");
printf("\n 4-QUIT");
printf("\n Enter your choice:");
fflush(stdin);
ch=getchar();
switch(ch)
{
case '1':
printf("\n Enter the nos of element to be inserted:");
scanf("%d",&x);
Insert(x);
break;
case '2':
x=Delete();
printf("\n Deleted element is %d\n:",x);
break;
case '3':
Display();
break;
case '4':
break;
default:
printf("\n Wrong choice!Try again:");
}
}
getch();
}
int Isempty()
{
if(front==-1)
return 1;
else
return 0;
}
int Isfull()
{
if(front==(rear+1)%MAXQ)
return 1;
else
return 0;
}
void Insert(int x)
{
if(Isfull())

28
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
printf("\n Queue full");
return;
}
if (front==-1)
{
front=0;
rear=0;
}
else
rear=(rear+1)%MAXQ;
items[rear]=x;
}
int Delete()
{
int x;
if(Isempty())
{
printf("\n Queue is empty");
exit(0);
}
x=items[front];
if (front==rear)
{
front=-1;
rear=-1;
}
else
front=(front+1)%MAXQ;
return x;
}
void Display()
{
int i,n;
if(Isempty())
{
printf("\n Queue is empty");
return;
}
printf("\n Elements in the Queue are :\n");
if(front<=rear)
{
for(i=front;i<=rear;i++)
printf("%d\n",items[i]);
}
else
{

29
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

for(i=front;i<=MAXQ-1;i++)
printf("%d\n",items[i]);
for(i=0;i<=rear;i++)
printf("%d\n",items[i]);
}
}

Output:

30
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

31
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

17.

Aim: Implementation of binary search tree using array.


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define TRUE 1
#define TREENODES 100
#define FALSE 0
struct tree
{
int info;
int used;
};
struct tree node[TREENODES];
void Createtree();
void Insert(int);
void Display();
void Setleft(int,int);
void Setright(int,int);
void main()
{
int x;
char ch='1';
clrscr();
printf("\n Enter root node value:");
scanf("%d", &x);
Createtree(x);
while(ch!='3')
{
printf("\n1-INSERT");
printf("\n2-DISPLAY");
printf("\n3-QUIT");
printf("\n Enter your choice:");
fflush(stdin);
ch=getchar();
switch(ch)
{
case '1' :
printf("\n Enter the element to be inserted:");
scanf("%d",&x);
Insert(x);
break;
case '2':
Display();
break;

32
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

case '3':
break;
default:
printf("\n Wrong choice!Try again:");
}
}
}
void Createtree(int x)
{
int i;
node[0].info=x;
node[0].used=TRUE;
for(i=1;i<TREENODES;i++)
node[i].used=FALSE;
}
void Insert(int x)
{
int p,q;
p=q=0;
while(q<TREENODES && node[q].used && x!=node[p].info)
{
p=q;
if(x<node[p].info)
q=2*p+1;
else
q=2*p+2;
}
if(x==node[p].info)
printf("\n %d is a duplicate number\n",x);
else
if(x<node[p].info)
Setleft(p,x);
else
Setright(p,x);
}
void Setleft(int pos,int x)
{
int q;
q=2*pos+1;
if(q>TREENODES)
printf("\n Array overflow.");
else
if(node[q].used==TRUE)
printf("\n Invalid insertion.");
else
{
node[q].info=x;

33
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

node[q].used=TRUE;
}
}
void Setright(int pos,int x)
{
int q;
q=2*pos+2;
if(q>TREENODES)
printf("\n Array overflow.");
else
if(node[q].used==TRUE)
printf("\n Invalid insertion.\n");
else
{
node[q].info=x;
node[q].used=TRUE;
}
}
void Display()
{
int i;
for(i=0;i<TREENODES;i++)
if(node[i].used==TRUE)
printf("%d ",node[i].info);
printf("\n");
}

Output:

34
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

18.

Aim: To Search an element using sequential search.

35
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

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

int Sequentialsearch(int[],int,int);
void main()
{
int x[20],i,n,p,key;
clrscr();
printf("\n Enter the no of element:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
printf("\n Enter the element to be search:");
scanf("%d",&key);
p=Sequentialsearch(x,n,key);
if(p==-1)
printf("\n The searchis unsuccessful:\n");
else
printf("\n%d is found at location %d",key,p);
getch();
}

int Sequentialsearch(int a[],int n ,int k)


{
int i;
for(i=0;i<n;i++)
{
if(k==a[i])
return(i);
}
return(-1);
}

Output:

36
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

19.

Aim: To Search an element using binary search.


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

int Binarysearch(int[],int,int);
void main()
{
int x[20],i,n,p,key;
clrscr();
printf("\n Enter the no of element:");
scanf("%d",&n);
printf("\n Enter %d elements in assending order:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
printf("\n Enter the element to be search:");
scanf("%d",&key);
p=Binarysearch(x,n,key);
if(p==-1)
printf("\n The searchis unsuccessful:\n");
else
printf("\n%d is found at location %d",key,p);

37
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

getch();
}

int Binarysearch(int a[],int n ,int k)


{
int lo,hi,mid;
lo=0;
hi=n-1;
while(lo<=hi)
{
mid=(lo+hi)/2;
if(k==a[mid])
return(mid);
if(k<a[mid])
hi=mid-1;
else
lo=mid+1;
}
return(-1);
}

Output:

38
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

20.

Aim: Arrange the list of numbers in ascending order using Bubble Sort.
#include<stdio.h>
#include<conio.h>

void Bubblesort(int[],int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Bubblesort(x,n);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
void Bubblesort(int a[],int n)
{
int temp,pass,i;
for(pass=0;pass<n-1;pass++)
{
for(i=0;i<n-pass-1;i++)
{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}

Output:

39
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

21.

Aim: Arrange the list of numbers in ascending order using Insertion Sort.
#include<stdio.h>
#include<conio.h>

void Insertionsort(int[],int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Insertionsort(x,n);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
void Insertionsort(int a[],int n)

40
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
int i,j,key;
for(j=1;j<n;j++)
{
key=a[j];
i=j-1;
while((i>-1)&&(a[i]>key))
{
a[i+1]=a[i];
i=i-1;
}
a[i+1]=key;
}
}

22.

Aim: Arrange the list of numbers in ascending order using Selection Sort.
#include<stdio.h>
#include<conio.h>

void Selectionsort(int[],int);
void main()

41
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Selectionsort(x,n);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
void Selectionsort(int a[],int n)
{
int i,j,pos,large;
for(i=n-1;i>0;i--)
{
large=a[0];
pos=0;
for(j=1;j<=i;j++)
{
if (a[i]>large)
{
large=a[j];
pos=j;
}
}
a[pos]=a[i];
a[i]=large;
}
}

Output:

42
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

23.

Aim: Arrange the list of numbers in ascending order using Merge Sort.
#include<stdio.h>
#include<conio.h>

void Mergesort(int[],int,int);
void Merge(int[],int,int,int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Mergesort(x,0,n-1);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}

43
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

void Mergesort(int a[],int p,int r)


{
int q;
if(p<r)
{
q=(p+r)/2;
Mergesort(a,p,q);
Mergesort(a,q+1,r);
Merge(a,p,q,r);
}
}
void Merge(int a[], int p, int q,int r)
{
int b[20],l1,r1,i;
l1=p;
r1=q+1;
i=p;
while((l1<=q)&&(r1<=r))
{
if(a[l1]<a[r1])
{
b[i]=a[l1];
l1=l1+1;
i=i+1;
}
else
{
b[i]=a[r1];
r1=r1+1;
i=i+1;
}
}
while(l1<=q)
{
b[i]=a[l1];
l1=l1+1;
i=i+1;
}
while(r1<=r)
{
b[i]=a[r1];
r1=r1+1;
i=i+1;
}
for(i=p;i<=r;i++)
a[i]=b[i];
}

44
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

Output:

24.

Aim: Arrange the list of numbers in ascending order using Quick Sort.
#include<stdio.h>
#include<conio.h>

void Quicksort(int[],int,int);
int partition(int[],int,int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Quicksort(x,0,n-1);

45
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

printf("\n The sorted array is:\n");


for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
void Quicksort(int a[],int p,int r)
{
int q;
if(p<r)
{
q=Partition(a,p,r);
Quicksort(a,p,q);
Quicksort(a,q+1,r);
}
}
int Partition(int a[], int p,int r)
{
int k,i,j,temp;
k=a[p];
i=p-1;
j=r+1;
while(1)
{
do
{
j=j-1;
}while(a[j]>k);
do
{
i=i+1;
}while(a[i]<k);
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
else
return(j);
}
}

Output:

46
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

25.

Aim: Arrange the list of numbers in ascending order using Radix Sort.
#include<stdio.h>
#include<conio.h>

void Radixsort(int[],int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
Radixsort(x,n);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
void Radixsort(int a[],int n)

47
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

{
int bucket[10][10],buck[10];
int i,j,k,l,num,div,large,pass;
div=1;
num=0;
large=a[0];
for(i=0;i<n;i++)
{
if(a[i]>large)
large=a[i];
}
while(large>0)
{
num=num+1;
large=large/10;
}
for(pass=0;pass<num;pass++)
{
for(k=0;k<10;k++)
buck[k]=0;
for(i=0;i<n;i++)
{
l=(a[i]/div)%10;
bucket[l][buck[l]++]=a[i];
}
i=0;
for(k=0;k<10;k++)
{
for(j=0;j<buck[k];j++)
a[i++]=bucket[k][j];
}
div=div*10;
}
}

Output:

48
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

26.

Aim: Arrange the list of numbers in ascending order using Heap Sort.
#include<stdio.h>
#include<conio.h>

void Heapsort(int[],int);
int Parent(int);
int Left(int);
int Right(int);
void Heapify(int[],int,int);
void Buildheap(int[],int);
void main()
{
int x[20],i,n;
clrscr();
printf("\n Enter the no of element to be sorted:");
scanf("%d",&n);
printf("\n Enter %d elements:",n);

49
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

for(i=0;i<n;i++)
scanf("%d",&x[i]);
Heapsort(x,n);
printf("\n The sorted array is:\n");
for(i=0;i<n;i++)
printf("%4d",x[i]);
getch();
}
int Parent(int i)
{
return(i/2);
}
int Left(int i)
{
return(2*i+1);
}
int Right(int i)
{
return(2*i+2);
}
void Heapify(int a[],int i,int n)
{
int l,r,large,temp ;
l=Left(i);
r=Right(i);
if((l<=n-1)&&(a[l]>a[i]))
large=l;
else
large=i;
if((r<=n-1)&&(a[r]>a[large]))
large=r;
if(large!=i)
{
temp=a[i];
a[i]=a[large];
a[large]=temp;
Heapify(a,large,n);
}
}
void Buildheap(int a[],int n)
{
int i;
for(i=(n-1)/2;i>=0;i--)
Heapify(a,i,n);
}
void Heapsort(int a[],int n)
{

50
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology
Lab manual for Data Structure using C Prepared by: Sunita Debbarma

int i,m,temp;
Buildheap(a,n);
m=n;
for(i=n-1;i>=1;i--)
{
temp=a[0];
a[0]=a[i];
a[i]=temp;
m=m-1;
Heapify(a,0,m);
}
}

Output:

51
rd
3 Semester Diploma in Computer Science & Technology and Diploma in Information Technology

You might also like