Data Structure Lab File
Data Structure Lab File
Code :
#include<stdio.h>
int main()
{
int a[50], num, i;
printf("Enter the number of elements : ");
scanf("%d", &num);
printf("Enter %d elements : \n", num);
for(i = 0; i < num; i++)
scanf("%d", &a[i]);
printf("The traversed array elements are : \n");
for(i = 0; i < num; i++)
1
2.Implementation ofInserting Algorithms.
Code :
#include<stdio.h>
int main()
{
int a[50], number, i, j, k, new_element;
i = number;
while(i >= j)
{
a[i+1] = a[i];
i--;
}
a[j] = new_element;
number = number + 1;
return 0;
}
2
Output :
3
3.Implementation ofdeleting Algorithms.
Code :
#include<stdio.h>
int main()
{
int a[50], number, i, j, k;
printf("\n");
printf("\n");
printf("Enter the number of elements : ");
scanf("%d", &number);
printf("Enter elements :\n");
for(k = 1; k <= number; k++)
scanf("%d", &a[k]);
printf("Enter the position of element to be deleted : ");
scanf("%d", &j);
i = j;
while(i <= number-1)
{
a[i] = a[i+1];
i++;
}
number = number - 1;
printf("Array after deletion : \n");
for(k = 1; k <= number; k++)
printf("%d\n", a[k]);
printf("\n");
printf("\n");
return 0;
}
Output :
4
4. Implementation ofSelection Sort Algorithms.
Code :
#include<stdio.h>
int main()
{
int a[50], num, i, k, temp, min, positions;
printf("\nEnter the number of elements : ");
scanf("%d", &num);
printf("Enter the array elements: \n");
for(i = 1; i <= num; ++i)
scanf("%d", &a[i]);
// interchange array elements
for(k=1; k <= num-1; k++)
{
min = a[k];
positions = k;
for(i=k+1; i <= num; ++i)
{
if(min > a[i])
{
min = a[i];
positions = i;
}
}
if(positions != k)
{
temp = a[k];
a[k] = a[positions];
a[positions] = temp;
}
}
printf("The sorted array is : \n");
for(k = 1; k <= num; k++)
{
printf("%d\n", a[k]);
}
return 0;
}
5
Output :
6
5. Implementation ofBubble Sort Algorithms.
Code :
#include<stdio.h>
int main()
{
int a[50], num, i, j, temp;
printf("\nEnter the number of elements in the array : ");
scanf("%d", &num);
printf("Enter the array elements : \n");
for(i = 1; i <= num; ++i)
scanf("%d", &a[i]);
// interchange array elements
for(i = 1; i <= num-1; i++)
{
for(j = 1; j <= num-i; ++j)
{
if(a[j] > a[j+1]) {
temp = a[j];
a [j] = a[j+1];
a[j+1] = temp;
}
}
}
// Output
printf("The sorted array is : \n");
for(i = 1; i<=num; i++)
printf("%d\n", a[i]);
return 0;
}
Output :
7
6. Implementation ofLinear search Algorithms.
Code :
#include<stdio.h>
int main()
{
int a[50], num, i, search, found = 0;
printf("\nEnter the number of elements : ");
scanf("%d", &num);
printf("Enter the array elements: \n");
for(i = 1; i <= num; ++i)
scanf("%d", &a[i]);
printf("Enter the elements to be searched for : ");
scanf("%d", &search);
// search for array elements
i = 1;
while(i<=num && found == 0)
{
if(a[i] == search)
found = 1;
i++;
}
// Output
if(found == 1)
printf("Elements found at positions : %d", i-1);
else
printf("Element not found");
return 0;
}
Output :
8
7.Explore the‘&’ operator and ‘*’ pointer.
Code :
#include<stdio.h>
int main()
{
int alpha = 1;
int *beta;
b eta = α
printf("The value %d is stored at this location : %d\n\n",beta, &beta);
printf("The value %d is stored at this location : %d\n\n",*beta, beta);
int a[20];
int i;
return 0;
}
9
Output :
10
8. Implementation ofBinary search Algorithms.
Code :
#include<stdio.h>
int main()
{
int i, first_element, last_element, middle_element, n, search, array[100];
printf("Enter number of elements:\n");
scanf("%d",&n);
printf("Enter %d integers:\n", n);
for (i = 0; i < n; i++)
scanf("%d",&array[i]);
printf("Enter the value to find:\n");
scanf("%d", &search);
first_element = 0;
last_element = n - 1;
middle_element = (first_element+last_element)/2;
while (first_element <= last_element) {
if (array[middle_element] < search)
first_element = middle_element + 1;
else if (array[middle_element] == search) {
printf("%d is present at index %d.\n", search, middle_element+1);
break;
}
else
last_element = middle_element - 1;
middle_element = (first_element + last_element)/2;
}
if (first_element > last_element)
printf("Not found! %d is not present in the list.\n", search);
return 0;
}
11
Output :
12
9. To demonstrate the use of dynamic allocation functionmalloc(). This program finds the sum and
average of all elements of the array.
Code :
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
void main()
{
int *ptr, i, n, sum = 0;
float avg;
printf("Enter the elements you want to store in array : ");
scanf("%d", &n);
ptr = (int *) malloc (n * sizeof(int));
if(ptr == NULL)
{
printf("The required amount of memory is not available");
exit (0);
}
else
{
printf("Enter the elements :\n");
for(i = 0; i < n; i++)
scanf("%d", ptr+i);
for(i = 0; i < n; i++)
{
sum = sum + (*(ptr + i));
}
printf("Sum of %d elements of arrays is = %d\n", n, sum);
avg = (float)sum/n;
printf("The average of %d number of array is : %.2f", n, avg);
}
}
Output :
13
10. To demonstrate the use of dynamic allocation functioncalloc().This program finds the sum
and average of all elements of the array.
Code :
#include<stdio.h>
#include<stdlib.h>
v oid main()
{
int *ptr, i, n, sum = 0;
float avg;
printf("Enter the number of elements : ");
scanf("%d", &n);
ptr = (int *) calloc(n, sizeof(int));
if(ptr == NULL)
{
printf("Memory not allocated");
exit(0);
}
else
{
printf("Enter the elements : \n");
for(i = 0; i < n; i++)
scanf("%d", ptr+i);
for(i = 0; i < n; i++)
{
sum = sum + (*(ptr + i));
}
printf("Sum of %d elements of arrays is = %d\n", n, sum);
avg = (float)sum/n;
printf("The average of %d number of array is : %.2f", n, avg);
printf("\n");
printf("\n");
}
}
14
Output :
15
11. Program oftwo - dimensional Array.
Code :
#include<stdio.h>
int main()
{
int a[3][3], i, j;
printf("Enter the array elements : \n");
for(i = 0; i <= 2; i++)
{
for(j = 0; j <= 2; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("The element of array are : \n");
for(i = 0; i <= 2; i++)
{
for(j = 0; j <= 2; j++)
{
printf(" %d", a[i][j]);
}
printf("\n");
}
return 0;
}
Output :
16
12. Implementation ofStack as an Array.
Code :
#include<stdio.h>
#include<conio.h>
#define MAX_SIZE 20
int stack[MAX_SIZE],top=NULL;
main()
{
int ch, x;
printf("\nSTACK OPERATIONS");
printf("\n1. Push operation");
printf("\n2. Pop operation");
printf("\n3. Exit");
while(1)
{
printf("\nEnter your choice: ");
scanf("%d", &ch);
switch(ch)
{
case 1:
printf("\nEnter the number to be pushed : ");
scanf("%d", &x);
push(x);
break;
case 2:
x = pop();
if(x != NULL)
printf("\nEnter the number to be popped : %d", x);
else
printf("\n The stack is empty");
break;
case 3:
exit(0);
default:
printf("\nEnter correct choice");
break;
}
}
}
push(int x)
17
{
if(top == MAX_SIZE)
{
printf("\n overflow");
return;
}
top= top+1;
stack[top]=x;
return;
}
int pop()
{
int x;
if(top==NULL)
return(NULL);
else
{
x=stack[top];
top=top-1;
return(x);
}
}
Output :
18
19
13. Implementation ofQueue as An Array.
Code :
#include<stdio.h>
#define MAX_SIZE 50
int main()
{
int choice, element;
printf("Queue Operations\n");
printf("1. Insert Operation\n");
printf("2. delete Operation\n");
printf("3. Exit\n");
hile(1)
w
{
printf("Enter your choice : ");
scanf("%d", &choice);
s witch(choice)
{
case 1:
printf("Enter number to be inserted : ");
scanf("%d", &element);
insert(element);
break;
case 2:
element = delete();
if(element != -1)
printf("The number deleted is : %d\n", element);
else
printf(" The queue is empty\n");
break;
c ase 3:
exit(0);
default :
printf("Enter correct choice\n");
20
break;
}
}
}
if(front == -1)
front = 0;
return(element);
}
int delete()
{
int element;
if(front == -1)
{
printf("Underflow");
return(-1);
}
e lement = queue[front];
if(front == rear)
front = rear = -1;
else
front = front + 1;
21
f ront = -1;
rear = -1;
}
return(element);
}
Output :
22
14. Implementation ofCircular Queue.
Code :
#include<stdio.h>
#define MAX_SIZE 50
int main()
{
int choice, element;
printf("Queue Operations\n");
printf("1. Insert Operation\n");
printf("2. delete Operation\n");
printf("3. Exit\n");
hile(1)
w
{
printf("Enter your choice : ");
scanf("%d", &choice);
s witch(choice)
{
case 1:
printf("Enter number to be inserted : ");
scanf("%d", &element);
insert(element);
break;
case 2:
element = delete();
if(element != -1)
printf("The number deleted is : %d\n", element);
else
printf("The queue is empty\n");
break;
c ase 3:
exit(0);
default :
printf("Enter correct choice\n");
23
break;
}
}
}
if(front == -1)
{
front = rear = 0;
}
else
{
if (rear == MAX_SIZE - 1)
rear = 0;
else
rear = rear + 1;
}
queue[rear] = element;
return;
}
int delete()
{
int element;
if(front == -1)
{
printf("Underflow\n");
return(-1);
}
e lement = queue[front];
if(front == rear)
front = rear = -1;
24
e lse
{
if(front == MAX_SIZE-1)
front = 0;
else
front = front + 1;
}
return(element);
}
Output :
25