2nd Sem Final PDF
2nd Sem Final PDF
#include<stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
student s[50];
printf("enter the number of students : ");
scanf("%d",&n);
printf("enter the details of students \nNAME\nRoll\nMarks: \n");
for(i=0;i<n;i++)
{
scanf("%s %d %d",s[i].name,&s[i].roll,&s[i].marks);
}
printf("THE DATA OF %d STUDENTS ARE:- ",n);
for(i=0;i<n;i++)
{
printf("\n%s\n%d\n%d\n",s[i].name,s[i].roll,s[i].marks);
}
return 0;
}
// 1) ARRAY IMPLEMENTATION OF STACK.
#include<stdio.h>
#include<stdlib.h>
#define size 5
typedef struct stack
{
int array[size];
int top;
}stack;
int main()
{
stack s;
int choice,element;
initstack(&s);
while(1)
{
printf("1: PUSH \n");
printf("2: POP \n");
printf("3: PEEP \n");
printf("4: EXIT \n");
printf("Enter your choice [1 - 4]: \n");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("\n Enter the element to push onto stack \n");
scanf("%d",&element);
push(&s,element);
break;
case 2: element = pop(&s);
if(element != -1)
printf("\n The popped element is = %d \n", element);
break;
case 3: element = peep(&s);
printf("The element on the top is = %d \n", element);
break;
case 4: printf("Exit from the program\n");
exit(0);
default: printf("Enter choice :(1-4):\n");
}
}
return 0;
}
// Linear Queue
#include<stdio.h>
#include<stdlib.h>
#define max 5
int main()
{
int ch,element,number=0;
queue q;
init(&q);
while(1)
{
printf("\n1.Insert an element\n2.Delete an element\n3.Display an
elements\n4.Count elements\n5.Exit\n");
printf("Enter your choice\n");
scanf("%d",&ch);
switch(ch)
{
case 1: printf("Enter the element to insert\n");
scanf("%d",&element);
insert(&q,element);
break;
case 2: element=delete(&q);
printf("Deleted element=%d",element);
break;
case 3: display(&q);
break;
case 4: number=count(&q);
printf("Number of elements in queue=%d\n",number);
break;
case 5: exit(0);
default:printf("\nWrong choice!!!!!!\n");
break;
}
}
return 0;
}
// Menu based implementation of Circular - QUEUE
#include<stdio.h>
#include<stdlib.h>
#define max 5
typedef struct queue
{
int rear,front;
int arr[max];
} queue;
#include <stdio.h>
int main()
{
int n,key;
printf("enter the size of array: ");
scanf("%d",&n);
int arr[n];
printf("enter the %d elements of array : ",n);
for (int i = 0; i < n; i++)
{
scanf("%d",&arr[i]);
}
printf("enter the value you want to search : ");
scanf("%d",&key);
binsrch(arr,key,0,n-1);
return 0;
}
// SINGLY LINKED-LIST
#include<stdio.h>
#include<stdlib.h>
int main()
{
node* head = NULL;
int choice;
while (1)
{
printf("\n----- Linked List Menu -----\n");
printf("1. Insert at Beginning\n");
printf("2. Insert at End\n");
printf("3. Delete from Beginning\n");
printf("4. Delete from End\n");
printf("5. Traverse\n");
printf("6. Count Nodes\n");
printf("7. Reverse List\n");
printf("8. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1: head = insertbegin(head);
break;
case 2: head = insertend(head);
break;
case 3: head = deletebegin(head);
break;
case 4: head = deleteend(head);
break;
case 5: traverse(head);
break;
case 6: printf("Total Nodes: %d\n", count(head));
break;
case 7: head = reverse(head); printf("List Reversed!\n");
break;
case 8: printf("Exiting program.\n");
exit(0);
default: printf("Invalid choice! Try again.\n");
}
}
return 0;
}
// Doubly linked list
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
// QuickSort function
void quickSort(int arr[], int low, int high)
{
if (low < high)
{
int pivot = arr[low];
int i = low, j = high;
while (i < j)
{
while (arr[j] > pivot)
j--;
if (i < j)
{
swap(&arr[i], &arr[j]);
}
}
swap(&arr[low], &arr[j]);
quickSort(arr, low, j - 1);
quickSort(arr, j + 1, high);
}
}
int main()
{
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int main()
{
int ch, ele;
struct node *root = NULL,*m;
printf("Menu for BST :\n 1.insert \n 2.inorder traverse \n 3.find max\n
4.exit \n");
while (1)
{
printf("enter your choice : ");
scanf("%d", &ch);
switch (ch)
{
case 1: printf("enter a value : ");
scanf("%d", &ele);
root = insert(root, ele);
break;
case 2: printf("inorder traverse : ");
inorderTraversal(root);
printf("\n");
break;
case 3: m=findmax(root);
if(m==NULL)
{
printf("Tree is empty\n");
}
else
printf("The maximum value is %d\n",m->data);
break;
case 4: printf("Exiting program");
exit(0);
default: printf("invalid choice\n");
break;
}
}
return 0;
}