Manish Temp
Manish Temp
C DSA Assignment
Section: A
Semester: 𝟑𝒓𝒅
Content
#include <stdio.h>
int linearsearch(int a[], int b, int k) {
for (int i = 0; i < b; i++) {
if (a[i] == k) {
return i;
}
}
return -1;
}
int main() {
int arr[100], n = 0, key, ch = 0;
while (ch != 3) {
printf("\nLinear Search Menu:\n");
printf("1. Assemble Array\n");
printf("2. Search Element\n");
printf("3. Exit\n");
printf("Enter your Choice: ");
scanf("%d", &ch);
switch (ch) {
case 1:
printf("Enter the size of array: ");
scanf("%d", &n);
printf("Enter Elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
break;
case 2:
if (n == 0) {
printf("Array not created! Please assemble the array first.\n");
} else {
printf("Enter the key to search: ");
scanf("%d", &key);
int p = linearsearch(arr, n, key);
if (p != -1) {
printf("%d is available at position %d\n", key, p + 1);
} else {
printf("%d is missing!\n", key);
}
}
break;
case 3:
printf("Exiting!!!\n");
break;
4
default:
printf("Invalid choice!\n");
}
}
return 0;
}
// OUTPUT
5
#include <stdio.h>
int main() {
int arr[100], n = 0, key, ch = 0;
while (ch != 3) {
printf("\nBinary Search Menu:\n");
printf("1. Assemble Array\n");
printf("2. Search Element\n");
printf("3. Exit\n");
printf("Enter your Choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter the size of Array: ");
scanf("%d", &n);
printf("\nEnter Elements:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
break;
}
case 2: {
if (n == 0) {
printf("Array not created!\n");
} else {
printf("Enter the key to search: ");
scanf("%d", &key);
int p = binarysearch(arr, n, key);
if (p != -1) {
printf("%d found at position %d.\n", key, p + 1);
} else {
printf("%d is missing!\n", key);
}
}
6
break;
}
case 3:
printf("Exiting!!!\n");
break;
default:
printf("Enter correct choice.\n");
}
}
return 0;
}
// OUTPUT
7
#include <stdio.h>
int main() {
int arr[100], n = 0, ch = 0;
while (ch != 4) {
printf("\nBubble Sort Menu:\n");
printf("1. Assemble Array\n");
printf("2. See Original Array\n");
printf("3. See Sorted Array\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter the size of Array: ");
scanf("%d", &n);
printf("\nEnter the elements: ");
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
break;
}
case 2: {
if (n == 0) {
printf("Array not Assembled!!!\n");
} else {
printf("Original Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
break;
}
case 3: {
if (n == 0) {
printf("Array not Assembled!!!\n");
} else {
printf("Sorted Array: ");
8
bubblesort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
break;
}
case 4: {
printf("Exiting!!!\n");
break;
}
default: {
printf("Enter correct choice!!!\n");
break;
}
}
}
return 0;
}
// OUTPUT
9
int main() {
int arr[100], n, ch = 0;
while (ch != 4) {
printf("\nInsertion Sort Menu:\n");
printf("1. Assemble Array\n");
printf("2. See Original Array\n");
printf("3. See Sorted Array\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter the size of Array: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
break;
}
case 2: {
if (n <= 0)
{
printf("Array not Assembled!!!\n");
}
else
{
printf("Original Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
break;
}
case 3: {
if (n <= 0)
{
10
return 0;
}
// OUTPUT
11
int main() {
int arr[100], sort[100], n = 0, ch = 0;
while (ch != 4) {
printf("\nSelection Sort Menu\n");
printf("1. Assemble Array\n");
printf("2. Original Array\n");
printf("3. Sorted Array\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter the size of the array: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Array Assembled Successfully!\n");
break;
}
case 2: {
if (n <= 0) {
printf("Array not Assembled.\n");
} else {
printf("\nOriginal Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
break;
}
case 3: {
if (n <= 0) {
printf("Array not Assembled.\n");
} else {
for (int i = 0; i < n; i++) {
12
sort[i] = arr[i];
}
selectionsort(sort, n);
printf("\nSorted Array: ");
for (int i = 0; i < n; i++) {
printf("%d ", sort[i]);
}
printf("\n");
}
break;
}
case 4: {
printf("Exiting!!!\n");
break;
}
default: {
printf("Enter a valid choice.\n");
break;
}
}
}
return 0;
}
// OUTPUT
13
int main() {
int arr[100],sort[100],n=0,ch=0;
while(ch != 4)
{
printf("\nMerge Sort Menu:\n");
printf("1.Assemble Array\n");
14
printf("2.Original Array\n");
printf("3.Sorted Array\n");
printf("4.Exit\n");
printf("Enter your choice: ");
scanf("%d",&ch);
switch (ch)
{
case 1:
{
printf("Enter the size of Array: ");
scanf("%d",&n);
printf("Enter the elements: ");
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
break;
}
case 2:
{
if(n<=0)
{
printf("Array not Assembled.");
}
else
{
printf("\nOriginal Array : ");
for(int i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
}
break;
}
case 3:
{
if(n<=0)
{
printf("Array not Assembled.");
}
else
{
for(int i=0;i<n;i++)
{
sort[i] = arr[i];
}
mergesort(sort,0,n-1);
printf("\nSorted Array: ");
for(int i= 0;i<n;i++)
{
printf("%d ",sort[i]);
}
}
break;
}
case 4:
{
printf("Exiting!!!");
15
break;
}
default:
{
printf("Enter Correct Choice.");
}
break;
}
}
return 0;
}
// OUTPUT
16
int main() {
int arr[100], sort[100], n = 0, ch = 0;
while (ch != 4) {
printf("\nQuick Sort Menu:\n");
printf("1. Assemble Array\n");
printf("2. Original Array\n");
printf("3. Sorted Array\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter the size of the Array: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
break;
}
case 2: {
if (n <= 0) {
printf("Array not Assembled.\n");
} else {
printf("\nOriginal Array: ");
for (int i = 0; i < n; i++) {
17
// Stack Code
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
void pop() {
if (top == -1) {
printf("Underflow, Enter first!!!\n");
} else {
int him = arr[top];
top--;
printf("The Popped Element is %d\n", him);
}
}
void display() {
if (top == -1) {
printf("Underflow, Enter first!!!\n");
return;
}
printf("Pushed elements are: ");
for (int i = top; i >= 0; i--) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int ch, n;
while (1) {
printf("\nSTACK Menu:\n");
printf("1. Push Element\n");
printf("2. Pop Element\n");
printf("3. Display\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter Element: ");
scanf("%d", &n);
push(n);
break;
}
19
case 2: {
pop();
break;
}
case 3: {
display();
break;
}
case 4: {
printf("Exiting!!!\n");
exit(0);
}
default: {
printf("Enter a correct choice.\n");
break;
}
}
}
return 0;
}
// OUTPUT
20
struct stack {
int top;
int arr[MAX];
};
typedef struct stack s;
int main() {
int ch, n;
s a;
a.top = -1;
while (1) {
printf("\nSTACK Menu:\n");
21
switch (ch) {
case 1: {
printf("Enter Element: ");
scanf("%d", &n);
push(&a, n);
break; }
case 2: {
pop(&a);
break; }
case 3: {
display(&a);
break; }
case 4: {
printf("\nExiting!!!\n");
exit(0); }
default: {
printf("\nEnter a correct choice.\n");
break;}} }
return 0;
}
// OUTPUT
22
// Queue Code
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct queue {
int f, r;
int q[MAX];
} q;
void initialize(q *queue) {
queue->f = -1;queue->r = -1;}
int isEmpty(q *queue) {
return (queue->f == -1);}
int isFull(q *queue) {
return ((queue->r + 1) % MAX == queue->f);}
void enqueue(q *queue, int val) {
if (isFull(queue)) {
printf("\nQueue Overflow.\n"); return; }
if (queue->f == -1) {
queue->f = 0; }
queue->r = (queue->r + 1) % MAX;
queue->q[queue->r] = val;
printf("\nElement %d enqueued.\n", val);}
void dequeue(q *queue) {
if (isEmpty(queue)) {
printf("\nQueue Underflow.\n");
return; }
int val = queue->q[queue->f];
if (queue->f == queue->r) {
queue->f = queue->r = -1; // Reset queue when it's empty.
} else {
queue->f = (queue->f + 1) % MAX; }
printf("\nElement %d dequeued.\n", val);}
void front(q *queue) {
if (isEmpty(queue)) {
printf("\nQueue is empty.\n");
return; }
printf("\nFront element is: %d\n", queue->q[queue->f]);}
void display(q *queue) {
if (isEmpty(queue)) {
printf("\nQueue is empty.\n");
return;}
printf("\nQueue elements: ");
int i = queue->f;
while (1) {
printf("%d ", queue->q[i]);
if (i == queue->r) break;
i = (i + 1) % MAX; }
printf("\n");}
int main() {
int ch, n;
q queue;
initialize(&queue);
while (1) {
23
printf("\nQueue Menu:\n");
printf("1. Enqueue Element\n");
printf("2. Dequeue Element\n");
printf("3. Front Element\n");
printf("4. Display Queue\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &ch);
switch (ch) {
case 1: {
printf("Enter Element: ");
scanf("%d", &n);
enqueue(&queue, n);
break; }
case 2: {
dequeue(&queue);
break; }
case 3: {
front(&queue);
break; }
case 4: {
display(&queue);
break; }
case 5: {
printf("\nExiting...\n");
exit(0); }
default: {
printf("\nEnter a valid choice.\n");
break;}}}
return 0;}
// OUTPUT
24
Node* create(int d) {
Node *new = (Node *)malloc(sizeof(Node));
new->d = d;
new->nxt = NULL;
return new;
}
if (temp == NULL) {
printf("Out of bounds.\n");
return;
}
prev->nxt = temp->nxt;
free(temp);
}
int main() {
Node *start = NULL;
int ch, d, pos;
while (1) {
printf("\n1. Create List\n2. Display\n3. Insert Elements\n4. Delete\n5. Search\n6. Exit\n");
printf("Enter choice: ");
scanf("%d", &ch);
switch (ch) {
case 1:
if (start != NULL) {
printf("List already created!\n");
break;
}
printf("Enter data: ");
scanf("%d", &d);
start = create(d);
break;
case 2:
display(start);
break;
case 3:
printf("Enter data: ");
scanf("%d", &d);
ins(&start, d);
break;
case 4:
printf("Enter position to delete: ");
scanf("%d", &pos);
del(&start, pos);
break;
case 5:
printf("Enter key to search: ");
scanf("%d", &d);
search(start, d);
break;
26
case 6:
return 0;
default:
printf("Invalid choice!\n");
}
}
}
// OUTPUT
27
Node* create(int d) {
Node *new = (Node *)malloc(sizeof(Node));
new->d = d;
new->prev = NULL;
new->next = NULL;
return new;
}
int main() {
Node *start = NULL;
int ch, d, pos;
while (1) {
printf("\n1. Create List\n2. Display\n3. Insert\n4. Delete\n5. Search\n6. Exit\n");
printf("Enter choice: ");
scanf("%d", &ch);
switch (ch) {
case 1:
if (start != NULL) {
printf("List already created!\n");
break;
}
printf("Enter data: ");
scanf("%d", &d);
start = create(d);
break;
case 2:
display(start);
break;
case 3:
printf("Enter data: ");
scanf("%d", &d);
ins(&start, d);
break;
case 4:
29
// OUTPUT
30
int main() {
Node *top = NULL;
int ch, d;
while (1) {
printf("\n1. Push\n2. Pop\n3. Display\n4. Exit\n");
printf("Enter choice: ");
scanf("%d", &ch);
31
switch (ch) {
case 1:
printf("Enter data to push: ");
scanf("%d", &d);
push(&top, d);
break;
case 2:
pop(&top);
break;
case 3:
display(top);
break;
case 4:
return 0;
default:
printf("Invalid choice!\n");
}
}
}
// OUTPUT