Dsa File by Aks
Dsa File by Aks
2821005
Affiliated to
1
Roll No. 2821005
PROGRAM:-1a
CODE:
#include <stdio.h>
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA\n");
printf("ROLL: 2821005\n");
int a[10], i, item,n;
printf("\nEnter number of elements of an array:\n");
scanf("%d",&n);
printf("\nEnter elements: \n");
for (i=0; i<n; i++)
scanf("%d", &a[i]);
printf("\nEnter item to search: ");
scanf("%d", &item);
for (i=0; i<=9; i++)
if (item == a[i])
{
printf("\nItem found at location %d", i+1);
break;
}
if (i > 9)
printf("\nItem does not exist.");
return 0;
}
2
Roll No. 2821005
OUTPUT:-
3
Roll No. 2821005
PRACTICAL :- 1b
CODE:
#include<stdio.h>
void main()
{
int mid,f,l,a[5],i,item;
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL NO.: 2821005\n");
}
else
{l=mid-1;
}
mid=(f+l)/2;
}
if(f>l)
printf("Item not found");
else
printf("Item found at location %d",mid+1);
}
4
Roll No. 2821005
OUTPUT:
5
Roll No. 2821005
PRACTICAL :- 2a
CODE:
#include<stdio.h>
void main()
int a[5],i,j,temp;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=5;i>1;i--)
{for(j=0;j<i-1;j++)
{if(a[j]>a[j+1])
{ temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;}
}}
for(i=0;i<5;i++)
printf("%d\n",a[i]);}
6
Roll No. 2821005
OUTPUT:
7
Roll No. 2821005
PRACTICAL:- 2b
CODE:
#include<stdio.h>
void main()
{
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL NO.: 2821005\n");
int a[5],i,j,loc,min,temp;
printf("enter 5 elements of array\n");
for(i=0;i<5;i++)
scanf("%d\n",&a[i]);
for(i=0;i<4;i++)
{ min=a[i];
loc=i;
for(j=i+1;j<5;j++)
{
if(a[j]<min)
{
min=a[j];
loc=j;
}
}
temp=a[i];
a[i]=a[loc];
a[loc]=temp;
}
printf("after selection sorting\n") ;
for(i=0;i<5;i++)
printf("%d\n",a[i]);
8
Roll No. 2821005
OUTPUT:
9
Roll No. 2821005
PRACTICAL :- 2c
CODE:
// Driver code
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
int arr[10],n,i;
printf("enter the size of an array: ");
scanf("%d",&n);
printf("enter the elements of the array: ");
for(i=0; i<n; i++){
scanf("%d",&arr[i]);
}
insertionSort(arr, n);
printf("the sorted array is: \n");
printArray(arr, n);
return 0;
}
11
Roll No. 2821005
OUTPUT:
12
Roll No. 2821005
PRACTICAL :- 3
AIM: WRITE A PROGRAM TO IMPLEMENT STACK AND ITS OPERATIONS
CODE:
#include <stdio.h>
int MAXSIZE = 8;
int stack[8];
int top = -1;
int isempty() {
if(top == -1)
return 1;
else
return 0;
}
int isfull() {
if(top == MAXSIZE)
return 1;
else
return 0;
}
int peek() {
return stack[top];
}
int pop() {
int data;
if(!isempty()) {
data = stack[top];
top = top - 1;
return data;
} else {
printf("Could not retrieve data, Stack is empty.\n");
13
Roll No. 2821005
}
}
if(!isfull()) {
top = top + 1;
stack[top] = data;
} else {
printf("Could not insert data, Stack is full.\n");
}
}
int main() {
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
return 0;
}
14
Roll No. 2821005
OUTPUT:
15
Roll No. 2821005
PRACTICAL :- 4
CODE:
#include <stdio.h>
void quick_sort(int[],int,int);
int partition(int[],int,int);
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
int a[50],n,i;
printf("How many elements:");
scanf("%d",&n);
printf("Enter array elements:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
quick_sort(a,0,n-1);
printf("Array after sorting:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
void quick_sort(int a[],int l,int u)
{
int j;
if(l<u)
{
j=partition(a,l,u);
quick_sort(a,l,j-1);
quick_sort(a,j+1,u);
}
}
int partition(int a[],int l,int u)
{
16
Roll No. 2821005
int v,i,j,temp;
v=a[l];
i=l;
j=u+1;
do
{
do
i++;
while(a[i]<v&&i<=u);
do
j--;
while(v<a[j]);
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
while(i<j);
a[l]=a[j];
a[j]=v;
return(j);
}
17
Roll No. 2821005
OUTPUT:
18
Roll No. 2821005
PRACTICAL :- 5
CODE:
#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
if(a[l1] <= a[l2])
b[i] = a[l1++];
else
b[i] = a[l2++];
}
19
Roll No. 2821005
int main() {
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
int i;
printf("List before sorting\n");
sort(0, max);
20
Roll No. 2821005
OUTPUT:
21
Roll No. 2821005
PRACTICAL :- 6
CODE:
/*/
* C Program to Implement a Queue using an Array
*/
#include <stdio.h>
#define MAX 50
void insert();
void delete();
void display();
int queue_array[MAX];
int rear = - 1;
int front = - 1;
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
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");
printf("Enter your choice : ");
scanf("%d", &choice);
switch (choice)
{
case 1:
insert();
break;
22
Roll No. 2821005
case 2:
delete();
break;
case 3:
display();
break;
case 4:
exit(1);
default:
printf("Wrong choice \n");
} /* End of switch */
}
return 0; /* End of while */
} /* End of main() */
void insert()
{
int add_item;
if (rear == MAX - 1)
printf("Queue Overflow \n");
else
{
if (front == - 1)
/*If queue is initially empty */
front = 0;
printf("Inset the element in queue : ");
scanf("%d", &add_item);
rear = rear + 1;
queue_array[rear] = add_item;
}
} /* End of insert() */
void delete()
{
if (front == - 1 || front > rear)
{
printf("Queue Underflow \n");
return ;
}
else
{
23
Roll No. 2821005
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");
}
}
24
Roll No. 2821005
OUTPUT:
25
Roll No. 2821005
PRACTICAL :-7
CODE:
#include <stdio.h>
# define max 6
int queue[max]; // array declaration
int front=-1;
int rear=-1;
// function to insert an element in a circular queue
void enqueue(int element)
{
if(front==-1 && rear==-1) // condition to check queue is empty
{
front=0;
rear=0;
queue[rear]=element;
}
else if((rear+1)%max==front) // condition to check queue is full
{
printf(“Queue is overflow..”);
}
else
{
rear=(rear+1)%max; // rear is incremented
queue[rear]=element; // assigning a value to the queue at the rear position.
}
}
26
Roll No. 2821005
{
printf(“\nThe dequeued element is %d”, queue[front]);
front=-1;
rear=-1;
}
else
{
printf(“\nThe dequeued element is %d”, queue[front]);
front=(front+1)%max;
}
}
// function to display the elements of a queue
void display()
{
int i=front;
if(front==-1 && rear==-1)
{
printf(“\n Queue is empty..”);
}
else
{
printf(“\nElements in a Queue are :”);
while(i<=rear)
{
printf(“%d,”, queue[i]);
i=(i+1)%max;
}
}
}
int main()
{
printf(“NAME: AKSHAT KUMAR SHARMA \n”);
printf(“ROLL: 2821005\n”);
switch(choice)
{
case 1:
}}
return 0;
}
OUTPUT:
28
Roll No. 2821005
PRACTICAL-8
29
Roll No. 2821005
CODE:
30
Roll No. 2821005
// List is empty
if (start == NULL)
printf("\nList is empty\n");
31
Roll No. 2821005
printf("\nList is empty\n");
else {
temp = start;
start = start->link;
free(temp);
}
}
// Driver Code
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA\n");
printf("ROLL: 2821005");
int choice;
while (1) {
switch (choice) {
case 1:
traverse();
break;
case 2:
insertAtFront();
break;
case 3:
deleteFirst();
break;
case 4:
exit(1);
break;
default:
printf("Incorrect Choice\n");
}
}
return 0;
}
32
Roll No. 2821005
OUTPUT:
33
Roll No. 2821005
PRACTICAL-9
#include <stdio.h>
#include <stdlib.h>
34
Roll No. 2821005
start = temp;
}
// If start is NULL
if (start == NULL) {
start = temp;
}
// Changes Links
else {
while (trav->next != NULL)
trav = trav->next;
temp->prev = trav;
trav->next = temp;
}
}
35
Roll No. 2821005
// If start==NULL,
if (start == NULL) {
start = newnode;
newnode->prev = NULL;
newnode->next = NULL;
}
// If position==1,
else if (pos == 1) {
newnode->next = start;
newnode->next->prev = newnode;
newnode->prev = NULL;
start = newnode;
}
// Change links
else {
while (i < pos - 1) {
temp = temp->next;
i++;
}
newnode->next = temp->next;
newnode->prev = temp;
temp->next = newnode;
temp->next->prev = newnode;
}
}
printf("\nList is empty\n");
temp = start;
while (temp->next != NULL)
temp = temp->next;
if (start->next == NULL)
start = NULL;
else {
temp->prev->next = NULL;
free(temp);
}
}
// If DLL is empty
if (start == NULL)
printf("\nList is empty\n");
// Otherwise
else {
// Position to be deleted
printf("\nEnter position : ");
scanf("%d", &pos);
if (position->next != NULL)
position->next->prev = temp;
temp->next = position->next;
// Free memory
free(position);
}
}
int main(){
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
int choice;
while (1) {
switch (choice) {
case 1:
traverse();
break;
case 2:
insertAtFront();
break;
case 3:
insertAtEnd();
break;
case 4:
insertAtPosition();
break;
case 5:
deleteFirst();
38
Roll No. 2821005
break;
case 6:
deleteEnd();
break;
case 7:
deletePosition();
break;
case 8:
exit(1);
break;
default:
printf("Incorrect Choice. Try Again \n");
continue;
}
}
return 0;
}
OUTPUT:
39
Roll No. 2821005
PRACTICAL-10
40
Roll No. 2821005
#include<stdio.h>
#include<stdlib.h>
struct Node;
typedef struct Node * PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
struct Node
{
int e;
Position next;
};
41
Roll No. 2821005
{
Position p = l->next;
while(p != l && p->e != x)
p = p->next;
return p;
}
void Display(List l)
{
printf("The list element are :: ");
Position p = l->next;
while(p != l)
{
printf("%d -> ", p->e);
p = p->next;
}
}
int main()
{
printf("NAME: AKSHAT KUMAR SHARMA \n");
printf("ROLL: 2821005\n");
scanf("%d", &ch);
switch(ch)
{
case 1:
p = l;
printf("Enter the element to be inserted :: ");
scanf("%d",&x);
printf("Enter the position of the element :: ");
scanf("%d",&pos);
for(i = 1; i < pos; i++)
{
p = p->next;
}
Insert(x,l,p);
break;
case 2:
p = l;
printf("Enter the element to be deleted :: ");
scanf("%d",&x);
Delete(x,p);
break;
case 3:
p = l;
printf("Enter the element to be searched :: ");
scanf("%d",&x);
p = Find(x,p);
if(p == l)
printf("Element does not exist!!!\n");
else
printf("Element exist!!!\n");
break;
case 4:
Display(l);
break;
}
}while(ch<5);
return 0;
}
OUTPUT:-
43
Roll No. 2821005
44