Dsa Files

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

SETH JAI PRAKASH MUKAND LAL INSTITUTE

OF ENGINEERING AND TECHNOLOGY

DSA PRACTICAL FILE

Bachelor of Technology (B.Tech) in CSE


Kurukshetra University Kurukshetra

SUBMITTED BY: SUBMITTED TO:

VISHAL KUMAR ER.MEENAKSHI

1222197 (A.P., CSE DEPT.)

2CSE-B

Department of Computer Science & Engineering

JMIT Radaur
INDEX
Sr. Experiment Title Page Date Signature
No. No.
1 Write a program to find smallest and largest
element in array.

2 Write a program to implement linear search.

3 Write a program to implement Binary search.

4 Write a program to insert an element in an array.

5 Write a program to delete element in an array.

6 Write a program to implement Insertion Sort.

7 Write a program to implement Bubble Sort.

8 Write a program to implement Selection Sort.

9 Write a program to implement stack and its


operations.

10 Program to convert Infix to Postfix expression.

11 Program for the Evaluation of Postfix expression.

12 Program to implement Quick Sort.

Department: Computer Science & Engineering [1222197]


13 Program to implement Merge Sort.

14 Program to implement Linear Queue and its


Operations.

15 Program to implement Circular Queue and its


operations.

Department: Computer Science & Engineering [1222197]


PROGRAM 1

Write a program to find smallest and largest element in array.


// LARGEST AND SMALLEST ELEMENTS IN ARRAY

#include<stdio.h>

#include<conio.h>

int main()

int a[100],i,n,lar,sma;

clrscr();

printf("the total number of elements:");

scanf("%d",&n);

printf("\nelements in array are:");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

lar=sma=a[0];

for(i=1;i<n;i++)

if(a[i]>lar)

lar=a[i];

if(a[i]<sma)

sma=a[i];

Department: Computer Science & Engineering [1222197]


}

printf("\n the larger no is %d",lar);

printf("\n the smaller no is %d",sma);

getch();

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 2

Write a program to implement linear search


#include<stdio.h>

#include<conio.h>

findElement(int arr[], int n,int key)

int i;

for(i=0;i<n;i++)

if(arr[i]==key)

return i;

return -1;

int main()

int arr[]={12,4,15, 34, 40};

int key=40;

int n =sizeof(arr)/sizeof(arr[0]);

int result=findElement(arr,n,key);

clrscr();

if(result==-1)

printf("the element is not present:");

else

printf("element %d is at index %d",key,result);

Department: Computer Science & Engineering [1222197]


getch();

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 3

Write a program to implement Binary search


// program for binary search

#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];

printf("Enter number of elements\n");


scanf("%d", &n);

printf("Enter %d integers\n", n);

for (c = 0; c < n; c++)


scanf("%d", &array[c]);

printf("Enter value to find\n");


scanf("%d", &search);

first = 0;
last = n - 1;
middle = (first+last)/2;

while (first <= last) {


if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search) {
printf("%d found at location %d.\n", search, middle+1);
break;

Department: Computer Science & Engineering [1222197]


}
else
last = middle - 1;

middle = (first + last)/2;


}
if (first > last)
printf("Not found! %d isn't present in the list.\n", search);

return 0;
}

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 4

Write a program to insert an element in an array.


// INSERTION IN ARRAY

#include<stdio.h>

#include<conio.h>

int main()

int arr[100]={1,2,3,4,5,6,7,8,9,10};

int i, insert,pos,n=10;

for(i=0;i<10;i++)

arr[i]=i+1;

for(i=0;i<10;i++)

printf("%3d",arr[i]);

printf("\n");

insert=40;

pos=5;

n++;

for(i=n;i>=pos;i--)

arr[i]=arr[i-1];

Department: Computer Science & Engineering [1222197]


arr[pos-1]=insert;

for(i=0;i<n;i++)

printf("%3d",arr[i]);

getch();

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 5

Write a program to delete element in an array.


#include<stdio.h>

#include<conio.h>

// Function to delete an element in array

int findElement(int array[], int size, int keyToBeDeleted);

int deleteElement(int array[], int size, int keyToBeDeleted)

int pos = findElement(array, size, keyToBeDeleted);

if (pos == - 1)

printf("Element not found");

return size;

int i;

for (i = pos; i < size - 1; i++)

array[i] = array[i + 1];

return size - 1;

int findElement(int array[], int size, int keyToBeDeleted)

int i;

Department: Computer Science & Engineering [1222197]


for (i = 0; i < size; i++)

if (array[i] == keyToBeDeleted)

return i;

return - 1;

int main()

int array[] = { 31, 27, 3, 54, 67, 31 };

int size = sizeof(array) / sizeof(array[0]);

int i, keyToBeDeleted = 67;

printf("n Before Deletion: ");

for (i = 0; i < size; i++)

printf("%d ", array[i]);

// Calling the function to delete an element from the array

size = deleteElement(array, size, keyToBeDeleted);

printf("n After Deletion: ");

for (i = 0; i < size; i++)

printf("%d ",array[i]);

return 0;

Department: Computer Science & Engineering [1222197]


OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 6
Write a program to implement Insertion Sort.

// program for insertion sort : find the smallest element from the array and check it
with previous element.
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,s,temp,a[20];
printf("enter the total elements:");
scanf("%d",&s);
printf("\ninput the element:");
for(i=0;i<s;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<s;i++)
{
temp=a[i];
j=i-1;
while((temp<a[j])&&(j>=0)) // j is the previous elemt of i
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=temp;
}
printf("\nAfter sorting:");
for(i=0;i<s;i++)
{
printf("\t%d",a[i]);

Department: Computer Science & Engineering [1222197]


}
return 0;
}

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 7

Write a program to implement Bubble Sort.


#include<stdio.h>

#include<conio.h>

// swapping

void swap(int *xp, int*yp)

int temp;

temp=*xp;

*xp=*yp;

*yp=temp;

// bubble sort implementation

void BubbleSort(int arr[],int n)

int i,j;

for(i=0;i<n-1;i++)

for(j=0;j<n-i-1;j++)

if(arr[j]>arr[j+1])

swap(&arr[j],&arr[j+1]);

// to print the array

Department: Computer Science & Engineering [1222197]


void printElement(int arr[],int n)

int i;

for(i=0;i<n;i++)

printf("%3d",arr[i]);

printf("\n");

int main()

int arr[]={64,34,25,12,22,11,90};

int n =sizeof(arr)/sizeof(arr[0]);

BubbleSort(arr,n);

printf("Sorted array:\n");

printElement(arr,n);

getch();

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 8

Write a program to implement Selection Sort.


#include<stdio.h>
#include<conio.h>
void swap(int *xp, int *yp)
{
int temp=*xp;
*xp=*yp;
*yp=temp;
}
void selectionSort(int arr[], int n )
{
int i , j , min_idx;
for(i=0;i<n-1;i++)
{
min_idx=i;
for(j=i+1;j<n;j++)
if(arr[j]<arr[min_idx])
min_idx=j;
swap(&arr[min_idx],&arr[i]);
}}
void printArray(int arr[], int n)
{
int i;

Department: Computer Science & Engineering [1222197]


for(i=0;i<n;i++)
printf("%3d",arr[i]);
printf("\n");
}
void main()
{
int arr[]={12,34,56,10,16};
int n = sizeof(arr)/ sizeof(arr[0]);
selectionSort(arr,n);
printf(" sorted array:");
printArray(arr,n);
getch();
}

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 9

Write a program to implement stack and its operations.


#include<stdio.h>

#include<process.h>

#include<stdlib.h>

# define MAX 5

int top=-1,stack[MAX];

void push();

void pop();

void display();

int main()

int ch;

while(1)

printf(".**stack menu*:\n");

printf("\n\n1.Push\n2.Pop\n3.Display\n.4.Exit");

printf("\n\nenter yout choice[1-4]:");

scanf("%d",&ch);

switch(ch)

case 1:push();

Department: Computer Science & Engineering [1222197]


break;

case 2:pop();

break;

case 3:display();

break;

case 4:exit(0);

default:printf("\n wrong choice");

void push()

int value;

if(top==MAX-1)

printf("\nstack is full.");

else

printf("\nenter the elements:");

scanf("%d",&value);

top=top+1;

stack[top]=value;

Department: Computer Science & Engineering [1222197]


}

void pop()

if(top==-1)

printf("\nthe stack is empty:");

else

printf("\ndelete the element:");

top=top-1;

void display()

int i;

if(top==-1)

printf("stack is empty");

else

Department: Computer Science & Engineering [1222197]


printf("the stack is full");

printf("\nstack is:");

for(i=top;i>=0;--i)

printf("%d ",stack[i]);

Department: Computer Science & Engineering [1222197]


PROGRAM 10

Program to convert Infix to Postfix expression


#include<stdio.h>

#include<ctype.h>

char stack[100];

int top = -1;

void push(char x)

stack[++top] = x;

char pop()

if(top == -1)

return -1;

else

return stack[top--];

int priority(char x)

if(x == '(')

return 0;

if(x == '+' || x == '-')

Department: Computer Science & Engineering [1222197]


return 1;

if(x == '*' || x == '/')

return 2;

return 0;

int main()

char exp[100];

char *e, x;

printf("Enter the expression : ");

scanf("%s",exp);

printf("\n");

e = exp;

while(*e != '\0')

if(isalnum(*e))

printf("%c ",*e);

else if(*e == '(')

push(*e);

else if(*e == ')')

while((x = pop()) != '(')

printf("%c ", x);

Department: Computer Science & Engineering [1222197]


}

else

while(priority(stack[top]) >= priority(*e))

printf("%c ",pop());

push(*e);

e++;

while(top != -1)

printf("%c ",pop());

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 11

Program for the Evaluation of Postfix expression


#include<stdio.h> // implement to evaluation of postfix expression

#include<conio.h>

#include<ctype.h>

int stack[20];

int top=-1;

void push(int x)

stack[++top]=x;

int pop()

return stack[top--];

int main()

char exp[20];

char *e;

int n1,n2,n3,num;

printf("enter the expression:");

scanf("%s",exp);

Department: Computer Science & Engineering [1222197]


e=exp;

while(*e !='\0')

if(isdigit(*e))

num=*e-48;

push(num);

else

n1=pop();

n2=pop();

switch(*e)

case '+':

n3=n1+n2;

break;

case'-':

n3=n2-n1;

break;

Department: Computer Science & Engineering [1222197]


}

case '*':

n3=n1*n1;

break;

case '/':

n3=n2/n1;

break;

push(n3);

e++; }

printf("\nthe result of expression %s=%d\n\n",exp,pop());

return 0;

Department: Computer Science & Engineering [1222197]


OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 12

Program to implement Quick Sort


#include<stdio.h>

#include<conio.h>

void swap(int* x, int* y)

int temp = *x;

*x = *y;

*y = temp;

int partition (int array[], int low, int high)

int pivot = array[high];

int i = (low - 1);

for (int j = low; j <= high- 1; j++)

if (array[j] < pivot)

i++;

swap(&array[i], &array[j]);

Department: Computer Science & Engineering [1222197]


}

swap(&array[i + 1], &array[high]);

return (i + 1);

void quickSort(int array[], int low, int high)

if (low < high)

int indexPI = partition(array, low, high);

quickSort(array, low, indexPI - 1);

quickSort(array, indexPI + 1, high);

void display(int array[], int size)

int i;

for (i=0; i < size; i++)

printf("%d ", array[i]);

int main()

int array[] = {70, 90, 10, 30, 50, 20, 60};

int size = sizeof(array)/sizeof(array[0]);

Department: Computer Science & Engineering [1222197]


quickSort(array, 0, size-1);

printf("Array after Quick Sorting: ");

display(array, size);

return 0;

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 13

Program to implement Merge Sort


// Merge Sort

#include<stdio.h>

#include<conio.h>

void merge(int arr[], int l, int m, int r)

int i, j, k;

int n1 = m - l + 1;

int n2 = r - m;

int L[n1], R[n2];

for (i = 0; i < n1; i++)

L[i] = arr[l + i];

for (j = 0; j < n2; j++)

R[j] = arr[m + 1 + j];

i = 0;

j = 0;

k = l;

while (i < n1 && j < n2)

if (L[i] <= R[j])

Department: Computer Science & Engineering [1222197]


arr[k] = L[i];

i++;

else {

arr[k] = R[j];

j++;

k++;

while (i < n1)

arr[k] = L[i];

i++;

k++;

while (j < n2)

arr[k] = R[j];

j++;

k++;

void mergeSort(int arr[], int l, int r)

Department: Computer Science & Engineering [1222197]


{

if (l < r)

int m = l + (r - l) / 2;

mergeSort(arr, l, m);

mergeSort(arr, m + 1, r);

merge(arr, l, m, r);

void printArray(int A[], int size)

int i;

for (i = 0; i < size; i++)

printf("%d ", A[i]);

printf("\n");

int main()

int arr[] = { 12, 11, 13, 5, 6, 7 };

int arr_size = sizeof(arr) / sizeof(arr[0]);

printf("Given array is \n");

printArray(arr, arr_size);

mergeSort(arr, 0, arr_size - 1);

Department: Computer Science & Engineering [1222197]


printf("\nSorted array is \n");

printArray(arr, arr_size);

return 0;

OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 14

Program to implement Linear Queue and its Operations


// linear queue

#include <stdio.h>

#include<stdlib.h>

#define MAX 50

void insert();

void deletion();

void display();

int queue_array[MAX];

int rear = - 1;

int front = - 1;

int main()

int choice;

while (1)

printf("1.Insert element to queue \n");

printf("2.Delete element from queue \n");

printf("3.Display all elements of queue \n");

printf("4.Quit \n");

Department: Computer Science & Engineering [1222197]


printf("Enter your choice : ");

scanf("%d", &choice);

switch(choice)

case 1:

insert();

break;

case 2:

deletion();

break;

case 3:

display();

break;

case 4:

exit(1);

default:

printf("Wrong choice \n");

void insert()

int item;

Department: Computer Science & Engineering [1222197]


if(rear == MAX - 1)

printf("Queue Overflow \n");

else

if(front== - 1)

front = 0;

printf("Inset the element in queue : ");

scanf("%d", &item);

rear = rear + 1;

queue_array[rear] = item;

void deletion()

if(front == - 1 || front > rear)

printf("Queue Underflow \n");

return;

else

printf("Element deleted from queue is : %d\n", queue_array[front]);

front = front + 1;

Department: Computer Science & Engineering [1222197]


}

void display()

int i;

if(front == - 1)

printf("Queue is empty \n");

else

printf("Queue is : \n");

for(i = front; i <= rear; i++)

printf("%d ", queue_array[i]);

printf("\n");

Department: Computer Science & Engineering [1222197]


OUTPUT:

Department: Computer Science & Engineering [1222197]


PROGRAM 15

Program to implement Circular Queue and its operations.


// Circular queue

#include<stdio.h>

#include<conio.h>

# define MAX 50

void insert();

void display();

int cqueue_arr[MAX];

int front = -1;

int rear = -1;

void insert(int item) // inserting element

if((front == 0 && rear == MAX-1) || (front == rear+1))

printf("Queue Overflow n");

return;

if(front == -1)

front = 0;

rear = 0;

Department: Computer Science & Engineering [1222197]


}

else

if(rear == MAX-1)

rear = 0;

else

rear = rear+1;

cqueue_arr[rear] = item ;

void deletion()

if(front == -1)

printf("Queue Underflown");

return ;

printf("Element deleted from queue is : %d\n",cqueue_arr[front]);

if(front == rear)

front = -1;

rear=-1;

Department: Computer Science & Engineering [1222197]


else

if(front == MAX-1)

front = 0;

else

front = front+1;

void display() // display

int front_pos = front,rear_pos = rear;

if(front == -1)

printf("Queue is emptyn");

return;

printf("Queue elements :\n");

if( front_pos <= rear_pos )

while(front_pos <= rear_pos)

printf("%d ",cqueue_arr[front_pos]);

front_pos++;

Department: Computer Science & Engineering [1222197]


else

while(front_pos <= MAX-1)

printf("%d ",cqueue_arr[front_pos]);

front_pos++;

front_pos = 0;

while(front_pos <= rear_pos)

printf("%d ",cqueue_arr[front_pos]);

front_pos++;

printf("\n");

int main()

int choice,item;

printf("Input the element for insertion in queue : ");

while (1)

printf("1.Insert element to queue \n");

Department: Computer Science & Engineering [1222197]


printf("2.Display all elements of queue \n");

printf("3.deletion of elements \n");

printf("4.Exit \n");

printf("Enter your choice : ");

scanf("%d", &choice);

switch (choice)

case 1:

printf("Input the element for insertion in queue : ");

scanf("%d", &item);

insert(item);

break;

case 2:

display();

break;

case 3:

deletion();

break;

default:

printf("Wrong choice \n");

while(choice !=4);

Department: Computer Science & Engineering [1222197]


}

OUTPUT:

Department: Computer Science & Engineering [1222197]


Department: Computer Science & Engineering [1222197]

You might also like