DS (1 To 20) - Compressed
DS (1 To 20) - Compressed
0801ME231095
IT SECOND YEAR (B-3)
Q1)write a program to print the largest number among the given number in an array
using dynamic array.
#include<stdio.h>
#include<stdlib.h>
int main() {
int n;
int *arr;
printf("Enter the size of array: ");
scanf("%d", &n);
arr = (int*)malloc(n * sizeof(int));
printf("Enter the elements:\n");
for(int i= 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int large = arr[0];
for(int i= 1; i < n; i++)
{
if(arr[i] > large) {
large = arr[i];}
}
printf("The largest number is: %d\n", large);
free(arr);
printf("\nSHAURYA JAIN\n0801ME231095\n");
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q2)write a program to print the smallest number among the given number in an array
using dynamic array.
#include<stdio.h>
#include<stdlib.h>
int main() {
int n;
int *arr;
printf("Enter the size of array: ");
scanf("%d", &n);
arr = (int*)malloc(n * sizeof(int));
printf("Enter the elements:\n");
Q3)Write a program to print the elements of an array in reverse order. (show the use
of malloc(),realloc() and free() function in your program).
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
int *arr;
printf("\n");
free(arr);
printf("\nSHAURYA JAIN\n0801ME231095\n");
return 0;
}
#include <stdio.h>
int main() {
int n;
printf("Enter the size of the array: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (int i = 0; i <n; i++) {
scanf("%d", &arr[i]);
}
duplicate(arr,n);
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q5. Write a menu driven program to implement following operations on the singly linked list.
(a) Insert a node at the front of the linked list. (b) Insert a node at the end of the linked list. (c)
Insert a node such that linked list is in ascending order.(according to info. Field) (d) Delete a
rst node of the linked list. (e) Delete a node before speci ed position. (f) Delete a node after
speci ed position.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
int count=0;
if(start==NULL){
printf("empty");
return;
ptr=start;
while(ptr!=NULL){
printf("%d ,",ptr->data);
ptr=ptr->next;}
}
fi
fi
fi
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
scanf("%d",&newnode->data);
if(start==NULL){
start=newnode;
count++;
else{
newnode->next=start;
start = newnode;
count++;
ptr = start;
scanf("%d",&newnode->data);
if(start==NULL){
start=newnode;
count++;
else{
ptr= ptr->next;
last=newnode;
count++;
void insert3()
int n;
scanf("%d", &n);
if (n == 1) {
insert1(); }
else {
scanf("%d", &newnode->data);
int i = 1;
temp = temp->next;
i++; }
newnode->next = temp->next;
temp->next = newnode;
count++;
else{
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
void delete1()
if(start==NULL){
printf("empty");
else {
ptr = start;
free(ptr);
count--;
if(start == NULL){
return;
while(ptr->next!= NULL)
temp=ptr;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr=ptr->next;
count--;
free(ptr);
temp->next = NULL;
void delete3()
int n;
if(start == NULL){
return ;}
scanf("%d", &n);
if (n == 1) {
delete1();
else {
int i = 1;
while (i < n ) {
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr = temp;
temp = temp->next;
i++; }
ptr->next = temp->next;
free(temp);
count--;
else{
{ int k ,m ;
do{
scanf("%d",&newnode->data);
if(start==NULL){
start =newnode ;
last = newnode;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
count++;
else {
last->next = newnode;
last= newnode;
count++;
}while(k!=0);
do
scanf("%d", &m);
switch(m){
case 7: k=7;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
}while(k!= 7);
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q6. Write a menu driven program to implement following operations on the doubly linked
list. (a) Insert a node at the front of the linked list. (b) Insert a node at the end of the linked
list. (c) Insert a node such that linked list is in ascending order.(according to info. Field) (d)
Delete a first node of the linked list. (e) Delete a node before specified position. (f) Delete a
node after specified position.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
int count=0;
ptr=start;
if(start==NULL){
printf("empty");
while(ptr!=NULL){
printf("%d ,",ptr->data);
ptr=ptr->next;}
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
scanf("%d",&newnode->data);
newnode->next= NULL;
if(start==NULL){
start=newnode;
newnode->prev= NULL;
count++;
else{
newnode->next=start;
start->prev= newnode;
newnode->prev= NULL;
start = newnode;
count++;
ptr = start;
scanf("%d",&newnode->data);
newnode->next= NULL;
if(start==NULL){
start=newnode;
newnode->prev= NULL;
count++;
else{
ptr= ptr->next;
newnode->prev= ptr;
last=newnode;
count++;
void insert3()
int n;
newnode->next=NULL;
scanf("%d", &n);
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
if (n == 1) { insert1(); }
else {
scanf("%d", &newnode->data);
int i = 1;
temp = temp->next;
i++; }
newnode->next = temp->next;
temp->next = newnode;
newnode->next->prev = newnode;
count++;
void delete1()
if(start==NULL){
printf("empty");
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
else {
ptr = start;
start->prev=NULL;
free(ptr);
count--;
if(start == NULL){
return;
if(start->next==NULL){
free(start);
start = NULL;
count--;
return;
while(ptr->next!= NULL)
ptr=ptr->next;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr->prev->next= NULL;
free(ptr);
count--;
void delete3()
int n;
if(start == NULL){
return ;}
scanf("%d", &n);
if (n == 1) {
delete1();
else {
int i = 1;
while (i < n ) {
ptr = temp;
temp = temp->next;
i++; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr->next = temp->next;
free(temp);
count--;
int k ;
do{
scanf("%d",&newnode->data);
newnode->next= NULL;
if(start==NULL){
newnode->prev=NULL;
start =newnode ;
last = newnode;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
else {
newnode->prev = last;
last->next = newnode;
last = newnode;
}while(k!=0);
int main() {
int m , k;
do
scanf("%d", &m);
switch(m){
case 7: k=7;
}while(k!= 7);
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q7. Write a menu driven program to implement following operations on the singly circular
linked list. (a) Insert a node at the front of the linked list. (b) Insert a node at the end of the
linked list. (c) Insert a node such that linked list is in ascending order.(according to info. Field)
(d) Delete a rst node of the linked list. (e) Delete a node before speci ed position. (f) Delete a
node after speci ed position.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
int count=0;
if(start==NULL){
printf("empty");
return;
ptr=start;
while(ptr->next!=start)
printf("%d ,",ptr->data);
ptr=ptr->next; }
fi
fi
fi
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
printf("%d ,",ptr->data);
scanf("%d",&newnode->data);
newnode->next=NULL;
if(start==NULL){
start =newnode ;
start->next=start;
count++;
else {
temp=start;
while(temp->next!=start){
temp=temp->next;
temp->next=newnode;
newnode->next= start;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
start= newnode;
count++;
scanf("%d",&newnode->data);
if(start==NULL){
start =newnode ;
start->next=start;
count++;
else {
temp=start;
while(temp->next!=start){
temp=temp->next;
temp->next=newnode;
newnode->next= start;
count++;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
void insert3()
int n;
scanf("%d", &n);
if (n == 1) { insert1(); }
else {
scanf("%d", &newnode->data);
int i = 1;
temp = temp->next;
i++; }
newnode->next = temp->next;
temp->next = newnode;
count++;
void delete1()
temp= start;
if(start==NULL){
printf("empty");
else{
while(temp->next!=start){
temp=temp->next;
ptr=start;
temp->next= start->next;
start=start->next;
ptr->next=NULL;
free(ptr);
count--;
temp= start;
if(start==NULL){
printf("empty");
else{
while(temp->next!=start){
ptr=temp;
temp=temp->next;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr->next=start;
temp->next=NULL;
free(temp);
count--;
void delete3()
int n;
return ;}
scanf("%d", &n);
if (n == 1) {
delete1();
else {
int i = 1;
while (i < n ) {
ptr = temp;
temp = temp->next;
i++; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
ptr->next = temp->next;
free(temp);
count--;
else{
{ int k ,m ;
do{
scanf("%d",&newnode->data);
if(start==NULL){
start =newnode ;
last = newnode;
count++;
else {
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
last->next = newnode;
last= newnode;
count++; }
}while(k!=0);
do
scanf("%d", &m);
switch(m){
case 7: k=7;
}while(k!= 7);
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q 7 output:
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q8. Write a menu driven program to implement following operations on the doubly circular
linked list. (a) Insert a node at the front of the linked list. (b) Insert a node at the end of the
linked list. (c) Insert a node such that linked list is in ascending order.(according to info. Field)
(d) Delete a first node of the linked list. (e) Delete a node before specified position. (f) Delete a
node after specified position.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
int count=0;
ptr=start;
if(start==NULL){
printf("empty");
while(ptr->next!=start){
printf("%d ,",ptr->data);
ptr=ptr->next;
printf("%d ,",ptr->data);
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
scanf("%d",&newnode->data);
newnode->next= NULL;
newnode->prev= NULL;
if(start==NULL){
start=newnode;
start->prev=start ;
start->next=start;
count++;
else{
start->prev->next=newnode;
newnode->prev=start->prev;
newnode->next=start;
start->prev=newnode;
start=newnode;
count++;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
scanf("%d",&newnode->data);
newnode->next= NULL;
newnode->prev= NULL;
if(start==NULL){
start=newnode;
start->prev=start ;
start->next=start;
count++;
else{
start->prev->next=newnode;
newnode->prev=start->prev;
newnode->next=start;
start->prev=newnode;
count++;
} }
void insert3(){
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
int n;
newnode->next=NULL;
scanf("%d", &n);
if (n == 1) {
insert1();}
else if(n==count+1){
insert2();
else { temp=start;
scanf("%d", &newnode->data);
int i = 1;
temp = temp->next;
i++; }
newnode->next=temp->next;
temp->next->prev=newnode;
newnode->prev=temp;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
temp->next= newnode;
count++;
else{
void delete1()
if(start==NULL){
printf("empty");
return;
else {
ptr = start;
start->prev->next= start->next;
start->next->prev=start->prev;
start=start->next;
free(ptr);
count--;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
if(start == NULL){
return;
else{
temp= start->prev;
start->prev=temp->prev;
temp->prev->next= start;
free(temp);
count--;
void delete3()
int n;
if(start == NULL){
return ;}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
scanf("%d", &n);
if (n == 1) {
delete1();
else if (n == count) {
delete2(); }
else {
temp = start;
int i = 1;
while (i < n ) {
temp = temp->next;
i++; }
temp->next->prev=temp->prev;
temp->prev->next= temp->next;
free(temp);
count--;
else{
{ int k ;
do{
scanf("%d",&newnode->data);
newnode->next= NULL;
newnode->prev=NULL;
if(start==NULL){
start =newnode ;
last = newnode;
start->prev=last;
last->next=start;
count++;
else {
newnode->next = last->next;
last->next=newnode;
start->prev=newnode;
newnode->prev=last;
last=newnode;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
count++;
}while(k!=0);
do
scanf("%d", &m);
switch(m){
case 4: delete1();
display();break;
case 5: delete2();
display();break;
case 6: delete3();
display();break;
case 7: k=7;
}while(k!= 7);
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q9. Write a program to create two different singly link list and merge them Into a síngle link
list.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
};
if(headofLL == NULL){
printf("empty");
return;}
ptr=headofLL;
while(ptr!=NULL){
printf("%d ",ptr->data);
ptr=ptr->next;}
void mergeLLs(){
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
else{
last1->next=start2;
{ int k ;
do{
scanf("%d",&newnode->data);
if(start1==NULL){
start1 =newnode ;
last1 = newnode;
else {
last1->next = newnode;
last1= newnode;
}while(k!=0);
{ int k ;
do{
scanf("%d",&newnode->data);
if(start2==NULL){
start2 =newnode ;
last2 = newnode;
else {
last2->next = newnode;
last2= newnode;
last2->next=NULL;
}while(k!=0);
int main() {
int m,k;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
do{
scanf("%d", &m);
switch(m){
case 4: k=4; }
}while(k!= 4);
return 0;}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
if(start==NULL){ printf("empty");
return;
ptr=start;
while(ptr!=NULL){
printf("%d ,",ptr->data);
ptr=ptr->next;}
void midelem(){
if(start==NULL){
printf("empty");
return;
temp= temp->next->next;
ptr= ptr->next;
{ int k ;
do{
scanf("%d",&newnode->data);
if(start==NULL){
start =newnode ;
last = newnode;
else {
last->next = newnode;
last= newnode;
}while(k!=0);
do
scanf("%d", &m);
switch(m){
case 3 : k=3; }
}while(k!= 3);
return 0;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q11 . Write a program to print data of singly link list in reverse order.
#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
} *start = NULL;
if(start==NULL){
printf("empty");
return;
ptr=start;
while(ptr!=NULL){
printf("%d ,",ptr->data);
ptr=ptr->next;}
void reverse(){
if(start==NULL){
printf("empty");
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
return;
while(temp!=NULL){
temp->next= prev;
prev= temp;
temp= front;
if(temp!=NULL){
front=temp->next;}
start = prev;
{ int k ;
do{
scanf("%d",&newnode->data);
if(start==NULL){
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
start =newnode ;
last = newnode;
else {
last->next = newnode;
last= newnode;
}while(k!=0);
do
scanf("%d", &m);
switch(m){
case 1 : create();
display();
break;
case 2 : reverse();
display();
break;
case 3 : k=3;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
}while(k!= 3);
return 0;}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
Q12. Write a program for stack that performs following operations using
array. (a) PUSIH (b) POP (C) PEEP(d) CHANGE (C) DISPLAY
#include<stdio.h>
#include<stdlib.h>
struct stack {
int A[SIZE];
int top;
} s;
void push()
{ int x ;
scanf("%d",&x);
if(s.top== SIZE-1){
printf("OVERFLOW\n");
else. {
s.top++;
s.A[s.top] =x; }
void pop()
if(s.top==-1){
printf("under ow\n");
else{ s.top—; }
fi
fl
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
void peep(){
scanf("%d",&position);
printf("invalid\n");
else{
printf("%d", s.A[s.top+1-position]);
void change()
int position , value ;// remember position starts from 1 and top
scanf("%d",&position);
scanf("%d",&value);
printf("invalid\n");
else{
s.A[s.top+1-position]= value;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
void display()
if(s.top==-1){
printf("under ow\n");
else{
int main()
{ int n;
s.top= -1;
do{
printf("\nMENU \n 1>push & 2>pop \n 3>peep & 4>change \n 5>display & 6>exit\n enter
what u want");
scanf("%d",&n);
switch(n){
case 6 : ; }
fl
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
}while(n!=6);
return 0; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
} *top= NULL;
void push(){
scanf("%d",&newnode->data);
else{
newnode->next= top;
top = newnode; }
void pop(){
if(top==NULL){ printf(“empty"); }
else{
top= top->next;
free(temp); }
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
void display(){
if(top==NULL){ printf("empty");
return; }
while(temp!=NULL) {
printf("%d ,",temp->data);
temp=temp->next; }
do{
printf("\nMENU \n 1>push & 2>pop \n 3>display & 4>exit\n enter what u want");
scanf(“%d",&n);
switch(n){
case 4 : ; }
}while(n!=4);
return 0;}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#de ne SIZE 20
int queue[SIZE];
int rear=-1;
void enqueue() {
int value;
scanf("%d",&value);
front=0;
rear=0;
queue[rear]= value;
else{
rear++;
queue[rear]= value;
void dequeue(){
return; }
rear =-1;
front=-1;
else{
front= (front+1); }
void display(){
printf("UNDERFLOW");
int main() {
int n;
do{
printf("\nMENU \n 1>enqueue & 2>dequeue \n 3>display & 4>exit\n enter what u want :");
scanf(“%d",&n);
switch(n){
case 4 : ; }
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
}while(n!=4);
return 0;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#include<stdlib.h>
struct queue {
int data;
};
void enqueue()
scanf("%d",&newnode->data);
if(rear==NULL){
rear->next= NULL;
else{
rear->next=newnode;
rear= newnode; }
void dequeue() {
return;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
else {
temp=front;
front = front->next;
free(temp);
void display()
return; }
else{
ptr=front;
while(ptr!=NULL){
printf("%d ",ptr->data);
ptr=ptr->next;
do {
scanf("%d",&k);
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
switch (k) {
case 4: ;
} while (k != 4);
return 0;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#de ne SIZE 20
int queue[SIZE];
int rear=-1;
void enqueue() {
int value;
scanf("%d",&value);
front = rear = 0;
queue[rear] = value;
else {
queue[rear] = value; }
void dequeue(){
rear =-1;
front=-1;
}
fi
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
else{
front= (front+1)%SIZE; }
void display(){
printf("UNDERFLOW");
int i= front;
while(i!=rear){
printf("%d ",queue[i]);
i= (i+1)%SIZE;
int main() {
int n;
do{
printf("\nMENU \n 1>enqueue & 2>dequeue \n 3>display & 4>exit\n enter what u want :");
scanf("%d",&n);
switch(n){
case 4 : ; }
}while(n!=4);
return 0;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
};
void enqueue(){
scanf("%d",&newnode->data);
newnode->next=NULL;
front=rear=newnode;
rear->next= front; }
else{
newnode->next=front;
rear->next=newnode;
rear=newnode; }
void dequeue(){
return;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
if(rear==front){
free(temp); }
else{
front= front->next;
rear->next= front;
free(temp); }
void display(){
return; }
while(temp->next !=front)
printf("%d ",temp->data);
temp=temp->next;
printf("%d ",temp->data);
do{
printf("\nMENU \n 1>enqueue & 2>dequeue \n 3>display & 4>exit\n enter what u want :");
scanf("%d",&n);
case 4 : ; }
}while(n!=4);
return 0;
}
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
#include <stdio.h>
#include <stdlib.h>
struct pqueue{
int data;
int priority;
};
void enqueue()
scanf("%d",&newnode->data);
scanf(“%d",&newnode->priority);
newnode->next=NULL;
newnode->next= front;
front = newnode;
return; }
else{
temp= temp->next;
newnode->next = temp->next;
SHAURYA JAIN
0801ME231095
IT SECOND YEAR (B-3)
temp->next= newnode;
return; }
front=front->next;
free(temp);
void display(){
return;}
while(temp!=NULL) {
temp=temp->next; }
do{
printf("\nMENU \n 1>enqueue & 2>dequeue \n 3>display & 4>exit\n enter what u want :");
scanf("%d",&n);
switch(n){
case 4 : ; }
}while(n!=4);
return 0; }