0% found this document useful (0 votes)
9 views

PROGRAM (DSA)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

PROGRAM (DSA)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

1.

//program for array implementation of queue


#include<stdio.h>
#include<conio.h>
#define MAX 5
int q[MAX],r=-1,f=-1;
void insert();
void del();
void disp();
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Insert \n2. Delete \n3. Display");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
insert();
break;
case 2:
del();
break();
case 3:
disp();
break;
default:
printf("\nChoice is wrong:");
} //end switch
printf("\nContinue 1 for yes:");
scanf("%d",&i);
} //end while
getch();
} //end main
//insert function
void insert()
{
int item;
if(r==MAX-1)
printf("\nQueue is full");
else
{
if(f==-1)
f=0;
printf("\nEnter item to insert:");
scanf("%d",&item);
r++;
q[r]=item;
}
}

//delete function
void del()
{
int item;
if(f==-1)
printf("\nqueue empty");
else
{
if(r==f) //last element
{
item=q[f];
printf("\nDeleted element is:%d",item);
r=f=-1;
}
else
{
item=q[f];
printf("\nDeleted element is:%d",item);
f++;
}
}
}
//display function
void disp()
{
int i;
printf("\n");
if(f==-1)
printf("\nQueue empty");
else
{
for(i=f;i<=r;i++)
printf("%d\t",q[i]);
}
}

Output:
7. //program for circular queue
#include<stdio.h>
#include<conio.h>
#define MAX 5
int q[MAX],r=-1,f=-1;
void insert();
void del();
void disp();
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Insert \n2. Delete \n3. Display");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
insert();
break;
case 2:
del();
break;
case 3:
disp();
break;
default:
printf("\nChoice is wrong:");
} //end switch
printf("\nContinue 1 for yes:");
scanf("%d",&i);
} //end while
getch();
} //end main
//insert function
void insert()
{
int item;
if((f==0 && r==MAX-1)||(r==f-1))
printf("\nQueue is full");
else
{
if(f==-1)
f=r=0;
else
if(f!=0 && r==MAX-1)
r=0;
else
r++;
printf("\nEnter item to insert:");
scanf("%d",&item);
q[r]=item;
}
}

//delete function
void del()
{
int item;
if(f==-1)
printf("\nqueue empty");
else
{
if(r==f) //last element
{
item=q[f];
printf("\nDeleted element is:%d",item);
r=f=-1;
}
else
if(f==MAX-1)
{
item=q[f];
printf("\nDeleted element is:%d",item);
f=0;
}
else
{
item=q[f];
printf("\nDeleted element is:%d",item);
f++;
}
}
}

//display function
void disp()
{
int i;
printf("\n");
if(f==-1)
printf("\nQueue empty");
else
if(f>r)
{
for(i=0;i<=r;i++)
printf("%d\t",q[i]);
for(i=f;i<=MAX-1;i++)
printf("%d\t",q[i]);
}
else
{
for(i=f;i<=r;i++)
printf("%d\t",q[i]);
}
}
8. //Program for singly linked list
#include<stdio.h>
#include<conio.h>
#define NULL 0
struct list
{
int info;
struct list *next;
};
typedef struct list node;
node *start,*temp,*temp1,*newnode;
void create(); //function for the creation of linked list
void insert_b(); //insert new node at the beginning
void insert_e(); //insert new node at the end
void insert_p(); //insert new node in between two nodes
void del_f(); //delete first node
void del_l(); //delete last node
void del_m(); //delete intermediate node
void disp(); //display linked list
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Create\n2. Insert at Beg\n3. Insert at Pos\n4. insert at end");
printf("\n5. Del first \n6. Del last \n7. Del intermedate \n8. Display");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
break;
case 2:
insert_b();
break;
case 3:
insert_p();
break;
case 4:
insert_e();
break;
case 5:
del_f();
break;
case 6:
del_l();
break;
case 7:
del_m();
break;
case 8:
disp();
break;
default:
printf("\nChoice is wrong");
}
printf("\nContinue 1 for yes");
scanf("%d",&i);
}
}

//function for the creation of linked list


void create()
{ start
int k=1; newnode
1006
start=(node *)malloc(sizeof(node)); Info next
newnode=start; 25
do
{
printf("Enter info new node:");
scanf("%d",&newnode->info);
printf("More node 1 for yes:");
scanf("%d",&k);
if(k==1)
{
newnode->next=(node *)malloc(sizeof(node));
newnode=newnode->next;
}
start
1006
Info next
25 1010 50 0
else newnode
newnode->next=NULL;
}while(k==1);
}

//function to insert node at the beginning


void insert_b()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node)); newnode 1018
printf("Enter info for new node:"); Info next
scanf("%d",&newnode->info); 45
newnode->next=start; start
start=newnode; 1018
}
45 1006 25 1010 50 0

//function to insert node at the end


void insert_e()
{
//allocate space for new node newnode
newnode=(node *)malloc(sizeof(node)); 1020
printf("Enter info for new node:"); Info next
scanf("%d",&newnode->info); 28 0
newnode->next=NULL;
temp=start; start
while(temp->next!=NULL) 1018
temp=temp->next; temp
temp->next=newnode; 45 1006 25 1010 50 0
}
temp temp
start
1018

45 1006 25 1010 50 1020 28 0


//function to insert node at particular position
void insert_p()
{
int t;
//allocate space for new node newnode
newnode=(node *)malloc(sizeof(node)); 1022
printf("Enter info for new node:");
scanf("%d",&newnode->info); 33
printf("\nEnter info of target node:");
scanf("%d",&t); temp1
temp=start; 1006
while(temp->next!=NULL)
start
{
if(temp->next->info==t) 1018 temp
break; 45 1006 25 1010 50 0
else
temp=temp->next;
}
temp1=temp->next;
temp->next=newnode;
newnode->next=temp1;
}

start 1018

45 1022 33 1006 25 1010 50 0


//function to delete first node
void del_f()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
printf("\nDeleted node:%d",temp->info);
temp=temp->next;
start=temp;
}
}
start

temp 1018
45 1022 33 1006 25 1010 50 0

start
1022

33 1006 25 1010 50 0
//function to delete last node
void del_l()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
while(temp->next->next!=NULL)
temp=temp->next;
printf("\nDeleted node:%d",temp->next->info);
temp->next=NULL;
}
}
temp
start 1018
temp
45 1022 33 1006 25 1010 50 0
temp

start 1018

45 1022 33 1006 25 0
//function to delete intermediate node
void del_m()
{
int item;
temp=start;
printf("\nWhich node to be deleted:");
scanf("%d",&item);
while(temp->next->next!=NULL)
{
if(temp->next->info==item)
{
printf("\nDeleted element is:%d",temp->next->info);
temp->next=temp->next->next;
break;
}
temp=temp->next;
}
}

temp
start 1018

45 1022 33 1006 25 1010 50 0


temp

start
1018

45 1022 33 1010 50 0
//function to display linked list
void disp()
{
temp=start;
printf("\n");
while(temp->next!=NULL)
{
printf("%d\t",temp->info);
temp=temp->next;
}
printf("%d",temp->info);
}

temp
start 1018

45 1022 33 1010 50 0
10. //Program for circular linked list
#include<stdio.h>
#include<conio.h>
#define NULL 0
struct list
{
int info;
struct list *next;
};
typedef struct list node;
node *start,*temp,*temp1,*newnode;
void create(); //function for the creation of linked list
void insert_b(); //insert new node at the beginning
void insert_e(); //insert new node at the end
void insert_p(); //insert new node at the position
void del_f(); //delete first node
void del_l(); //delete last node
void del_m(); //delete intermediate node
void disp(); //display linked list
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Create\n2. Insert at Beg\n3. Insert at Pos\n4. insert at end");
printf("\n5. Del first \n6. Del last \n7. Del intermediate \n8. Display");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
break;
case 2:
insert_b();
break;
case 3:
insert_p();
break;
case 4:
insert_e();
break;
case 5:
del_f();
break;
case 6:
del_l();
break;
case 7:
del_m();
break;
case 8:
disp();
break;
default:
printf("\nChoice is wrong");
}
printf("\nContinue 1 for yes");
scanf("%d",&i);
}
}

//function for the creation of linked list


void create()
{
int k=1;
start=(node *)malloc(sizeof(node));
newnode=start;
do
{
printf("Enter info new node:");
scanf("%d",&newnode->info);
printf("More node 1 for yes:");
scanf("%d",&k);
if(k==1)
{
newnode->next=(node *)malloc(sizeof(node)); start
newnode=newnode->next; 1018
newnode
}
45
start
newnode 1018
else 45 1010 55 1018
newnode->next=start;
}while(k==1);

//function to insert node at the beginning


void insert_b() start
{ 1018
//allocate space for new node
newnode=(node *)malloc(sizeof(node)); 45 1010 45 1018
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=start;
newnode
temp=start; 1026
while(temp->next!=start)
91
temp=temp->next;
start=newnode;
temp->next=start; temp
} start 1018

45 1010 45 1018

newnode 1026

91
temp
//function to insert node at the end start 1018
void insert_e()
{ 45 1010 45 1018
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
newnode
scanf("%d",&newnode->info); 1026
newnode->next=start;
91
temp=start;
while(temp->next!=start)
temp=temp->next;
temp->next=newnode;
}

//function to insert node at particular position


void insert_p()
{
int t;
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
printf("\nEnter info of target node:");
scanf("%d",&t);
temp=start;
while(temp->next!=start)
{
if(temp->next->info==t)
break;
else
temp=temp->next;
}
temp1=temp->next;
temp->next=newnode;
newnode->next=temp1;
}
//function to delete first node
void del_f()
{
if(start->next==start) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
printf("\nDeleted node:%d",start->info);
while(temp->next!=start)
temp=temp->next;
start=start->next;
temp->next=start;
}
}

//function to delete last node


void del_l()
{
if(start->next==start) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
while(temp->next->next!=start)
temp=temp->next;
printf("\nDeleted node:%d",temp->next->info);
temp->next=start;
}
}
//function to delete intermediate node
void del_m()
{
int item;
temp=start;
printf("\nWhich node to be deleted:");
scanf("%d",&item);
while(temp->next->next!=start)
{
if(temp->next->info==item)
{
printf("\nDeleted element is:%d",temp->next->info);
temp->next=temp->next->next;
break;
}
temp=temp->next;
}
}

//function to display linked list


void disp()
{
temp=start;
printf("\n");
while(temp->next!=start)
{
printf("%d\t",temp->info);
temp=temp->next;
}
printf("%d",temp->info);
}

12. //Program for doubly linked list


#include<stdio.h>
#include<conio.h>
#define NULL 0
struct list
{
struct list *prev;
int info;
struct list *next;
};
typedef struct list node;
node *start,*last,*temp,*temp1,*newnode;
void create(); //function for the creation of linked list
void insert_b(); //insert new node at the beginning
void insert_e(); //insert new node at the end
void insert_p(); //insert new node at the position
void del_f(); //delete first node
void del_l(); //delete last node
void del_m(); //delete intermediate node
void disp_b(); //display from first node
void disp_l(); //display from last node
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Create\n2. Insert at Beg\n3. Insert at Pos\n4. insert at end");
printf("\n5. Del first \n6. Del last \n7. Del intermedate \n8. Display forward");
printf("\n9. Display Backward");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
break;
case 2:
insert_b();
break;
case 3:
insert_p();
break;
case 4:
insert_e();
break;
case 5:
del_f();
break;
case 6:
del_l();
break;
case 7:
del_m();
break;
case 8:
disp_b();
break;
case 9:
disp_l();
break;
default:
printf("\nChoice is wrong");
}
printf("\nContinue 1 for yes");
scanf("%d",&i);
}
}

//function for the creation of linked list


void create()
{
int k=1;
newnode=(node *)malloc(sizeof(node));
start=newnode;
newnode->prev=NULL;
do
{
printf("Enter info new node:");
scanf("%d",&newnode->info);
printf("More node 1 for yes:");
scanf("%d",&k);
if(k==1)
{
newnode->next=(node *)malloc(sizeof(node));
newnode->next->prev=newnode;
newnode=newnode->next;
}
else
{
newnode->next=NULL;
last=newnode;
}
}while(k==1);
}

//function to insert node at the beginning


void insert_b()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->prev=NULL;
newnode->next=start;
start->prev=newnode;
start=newnode;
}

//function to insert node at the end


void insert_e()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=NULL;
newnode->prev=last;
last->next=newnode;
last=newnode;

}
//function to insert node at particular position
void insert_p()
{
int t;
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
printf("\nEnter info of target node:");
scanf("%d",&t);
temp=start;
while(temp->next!=NULL)
{
if(temp->next->info==t)
break;
else
temp=temp->next;
}
if(temp->next==NULL)
printf("\nNode not fund");
else
{
newnode->next=temp->next;
newnode->prev=temp;
temp->next->prev=newnode;
temp->next=newnode;
}
}

//function to delete first node


void del_f()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start->next;
printf("\nDeleted node:%d",start->info);
temp->prev=NULL;
start=temp;
}
}

//function to delete last node


void del_l()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=last->prev;
printf("\nDeleted node:%d",last->info);
temp->next=NULL;
last=temp;
}
}

//function to delete intermediate node


void del_m()
{
int item;
temp=start;
printf("\nWhich node to be deleted:");
scanf("%d",&item);
while(temp->next->next!=NULL)
{
if(temp->next->info==item)
{
printf("\nDeleted element is:%d",temp->next->info);
temp->next=temp->next->next;
temp->next->prev=temp;
break;
}
temp=temp->next;
}
}

//function to display linked list forward


void disp_b()
{
temp=start;
printf("\n");
while(temp->next!=NULL)
{
printf("%d\t",temp->info);
temp=temp->next;
}
printf("%d",temp->info);
}

//function to display linked list backward


void disp_l()
{
temp=last;
printf("\n");
while(temp->prev!=NULL)
{
printf("%d\t",temp->info);
temp=temp->prev;
}
printf("%d",temp->info);
}
//Program for singly linked list
#include<stdio.h>
#include<conio.h>
#define NULL 0
struct list
{
int info;
struct list *next;
};
typedef struct list node;
node *start,*temp,*temp1,*newnode;
void create(); //function for the creation of linked list
void insert_b(); //insert new node at the beginning
void insert_e(); //insert new node at the end
void insert_p(); //insert new node at the position
void del_f(); //delete first node
void del_l(); //delete last node
void del_m(); //delete intermediate node
void disp(); //display linked list
void rev(); //function to reverse linked list
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Create\n2. Insert at Beg\n3. Insert at Pos\n4. insert at end");
printf("\n5. Del first \n6. Del last \n7. Del intermedate \n8. Display");
printf("\n9. Reverse");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
break;
case 2:
insert_b();
break;
case 3:
insert_p();
break;
case 4:
insert_e();
break;
case 5:
del_f();
break;
case 6:
del_l();
break;
case 7:
del_m();
break;
case 8:
disp();
break;
case 9:
rev();
break;
default:
printf("\nChoice is wrong");
}
printf("\nContinue 1 for yes");
scanf("%d",&i);
}
}

//function for the creation of linked list


void create()
{
int k=1;
start=(node *)malloc(sizeof(node));
newnode=start;
do
{
printf("Enter info new node:");
scanf("%d",&newnode->info);
printf("More node 1 for yes:");
scanf("%d",&k);
if(k==1)
{
newnode->next=(node *)malloc(sizeof(node));
newnode=newnode->next;
}
else
newnode->next=NULL;
}while(k==1);
}

//function to insert node at the beginning


void insert_b()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=start;
start=newnode;
}

//function to insert node at the end


void insert_e()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=NULL;
temp=start;
while(temp->next!=NULL)
temp=temp->next;
temp->next=newnode;
}

//function to insert node at particular position


void insert_p()
{
int t;
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
printf("\nEnter info of target node:");
scanf("%d",&t);
temp=start;
while(temp->next!=NULL)
{
if(temp->next->info==t)
break;
else
temp=temp->next;
}
temp1=temp->next;
temp->next=newnode;
newnode->next=temp1;
}

//function to delete first node


void del_f()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
printf("\nDeleted node:%d",temp->info);
temp=temp->next;
start=temp;
}
}

//function to delete last node


void del_l()
{
if(start->next==NULL) //last node
{
printf("\nDeleted node:%d",start->info);
start=NULL;
}
else
{
temp=start;
while(temp->next->next!=NULL)
temp=temp->next;
printf("\nDeleted node:%d",temp->next->info);
temp->next=NULL;
}
}

//function to delete intermediate node


void del_m()
{
int item;
temp=start;
printf("\nWhich node to be deleted:");
scanf("%d",&item);
while(temp->next->next!=NULL)
{
if(temp->next->info==item)
{
printf("\nDeleted element is:%d",temp->next->info);
temp->next=temp->next->next;
break;
}
temp=temp->next;
}
}
//function for reversing linked list
void rev()
{
node *pnode,*cnode;
pnode=start;
cnode=start->next;
start=pnode->next;
if(start==NULL)
printf("\nOnly one node in list");
else
{
pnode->next=NULL;
while(start!=NULL)
{
start=start->next;
cnode->next=pnode;
pnode=cnode;
cnode=start;
}
start=pnode;
}
}

//function to display linked list


void disp()
{
temp=start;
printf("\n");
while(temp->next!=NULL)
{
printf("%d\t",temp->info);
temp=temp->next;
}
printf("%d",temp->info);
}
14. //Program for Header linked list
#include<stdio.h>
#include<conio.h>
#define NULL 0
struct list
{
int info;
struct list *next;
};
typedef struct list node;
node *start,*temp,*temp1,*newnode;
void create(); //function for the creation of linked list
void insert_b(); //insert new node at the beginning
void insert_e(); //insert new node at the end
void insert_p(); //insert new node at the position
void del_f(); //delete first node
void del_l(); //delete last node
void del_m(); //delete intermediate node
void disp(); //display linked list
int count=0;
void main()
{
int i=1,choice;
clrscr();
while(i==1)
{
printf("\n1. Create\n2. Insert at Beg\n3. Insert at Pos\n4. insert at end");
printf("\n5. Del first \n6. Del last \n7. Del intermedate \n8. Display");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
create();
break;
case 2:
insert_b();
break;
case 3:
insert_p();
break;
case 4:
insert_e();
break;
case 5:
del_f();
break;

case 6:
del_l();
break;
case 7:
del_m();
break;
case 8:
disp();
break;
default:
printf("\nChoice is wrong");
}
printf("\nContinue 1 for yes");
scanf("%d",&i);
}
}

//function for the creation of linked list


void create()
{
int k=1;
start=(node *)malloc(sizeof(node));
newnode=start;
while(k==1)
{
newnode->next=(node *)malloc(sizeof(node));
newnode=newnode->next;
count++;
printf("Enter info new node:");
scanf("%d",&newnode->info);
printf("More node 1 for yes:");
scanf("%d",&k);
if(k!=1)
{
newnode->next=NULL;
start->info=count;
break;
}
}
}

//function to insert node at the beginning


void insert_b()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=start->next;
start->next=newnode;
start->info=++count;
}
//function to insert node at the end
void insert_e()
{
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
newnode->next=NULL;
temp=start->next;
while(temp->next!=NULL)
temp=temp->next;
temp->next=newnode;
start->info=++count;
}
//function to insert node at particular position
void insert_p()
{
int t;
//allocate space for new node
newnode=(node *)malloc(sizeof(node));
printf("Enter info for new node:");
scanf("%d",&newnode->info);
printf("\nEnter info of target node:");
scanf("%d",&t);
temp=start;
while(temp->next!=NULL)
{
if(temp->next->info==t)
break;
else
temp=temp->next;
}
temp1=temp->next;
temp->next=newnode;
newnode->next=temp1;
start->info=++count;
}

//function to delete first node


void del_f()
{
temp=start->next;
if(temp->next==NULL) //last node
{
printf("\nDeleted node:%d",temp->info);
start->next=NULL;
}
else
{
printf("\nDeleted node:%d",temp->info);
temp=temp->next;
start->next=temp;
}
start->info=--count;
}

//function to delete last node


void del_l()
{
temp=start->next;
if(temp->next==NULL) //last node
{
printf("\nDeleted node:%d",temp->info);
start->next=NULL;
}
else
{
while(temp->next->next!=NULL)
temp=temp->next;
printf("\nDeleted node:%d",temp->next->info);
temp->next=NULL;
}
start->info=--count;
}
//function to delete intermediate node
void del_m()
{
int item;
temp=start->next;
printf("\nWhich node to be deleted:");
scanf("%d",&item);
while(temp->next->next!=NULL)
{
if(temp->next->info==item)
{
printf("\nDeleted element is:%d",temp->next->info);
temp->next=temp->next->next;
break;
}
temp=temp->next;
}
start->info=--count;
}

//function to display linked list


void disp()
{
temp=start;
printf("\n");
while(temp->next!=NULL)
{
printf("%d\t",temp->info);
temp=temp->next;
}
printf("%d",temp->info);
}

You might also like