\\DATA STRUCTURE
\\TOPIC:MENUDRIVEN LINKED LIST IMPLEMENTATION
\\AUTHOR:DARSHIT VORA
#include < stdio.h >
#include < conio.h >
#include < alloc.h >
struct node
{
int info;
struct node *next;
}*start,*temp,*nnew;
int i=0,num;
void insertbeg();
void insertmid();
void insertend();
void deletebeg();
void deletemid();
void delend();
void delall();
void display();
void main()
{
int ch,ch1,ch2;
char ans;
do
{
clrscr();
printf("What do you want to do?");
printf("\n\n1.Insert");
printf("\n2.Delete");
printf("\n3.Display");
printf("\n4.Exit");
printf("\n\nEnter your choice");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
printf("\n\n1.Insert at beginning");
printf("\n2.Insert in middle");
printf("\n3.Insert at end");
printf("\nEnter your choice");
scanf("%d",&ch1);
switch(ch1)
{
case 1:insertbeg();break;
case 2:insertmid();break;
case 3:insertend();break;
}
break;
}
case 2:
{
printf("\n\n1.Delete first element");
printf("\n2.Delete from middle");
printf("\n3.Delete last element");
printf("\n4.Delete entire list");
printf("\nEnter your choice");
scanf("%d",&ch2);
switch(ch2)
{
case 1:deletebeg();break;
case 2:deletemid();break;
case 3:delend();break;
case 4:delall();break;
}
break;
}
case 3:display();break;
case 4:exit();break;
}
printf("\nDo you want to continue?(y/n)");
flushall();
scanf("%c",&ans);
}while(ans=='y' || ans=='Y');
}
void insertbeg()
{
if(i==0)
{
temp=start;
printf("List is empty");
start=(struct node *) malloc(sizeof(struct node));
printf("\nEnter element ");
scanf("%d",&start->info);
start->next=NULL;
i=i+1;
temp=start;
}
else
{
temp=start;
temp=(struct node *) malloc(sizeof(struct node));
printf("Enter element ");
scanf("%d",&temp->info);
i=i+1;
temp->next=start;
start=temp;
}
}
void insertmid()
{
temp=start;
printf("Enter element after which you want to insert ");
scanf("%d",&num);
nnew=(struct node *) malloc(sizeof(struct node));
printf("Enter element to insert ");
scanf("%d",&nnew->info);
while(temp->next!=NULL)
{
if(temp->info==num)
{
nnew->next=temp->next;
temp->next=nnew;
break;
}
temp=temp->next;
}
i=i+1;
}
void insertend()
{
temp=start;
while(temp->next!=NULL)
{
temp=temp->next;
}
nnew=(struct node *) malloc(sizeof(struct node));
printf("Enter element ");
scanf("%d",&nnew->info);
temp->next=nnew;
nnew->next=NULL;
temp=start;
i=i+1;
}
void deletebeg()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
temp=start;
start=temp->next;
free(temp);
temp=start;
i=i-1;
}
void deletemid()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
printf("Enter element which you want to delete");
scanf("%d",&num);
temp=start;
nnew=start;
while(temp->next!=NULL)
{
if(temp->info==num)
{
nnew->next=temp->next;
break;
}
nnew=temp;
temp=temp->next;
}
free(temp);
temp=start;
i=i-1;
}
void delend()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
temp=start;
nnew=start;
while(temp->next!=NULL)
{
nnew=temp;
temp=temp->next;
}
free(temp);
nnew->next=NULL;
i=i-1;
}
void delall()
{
temp=start;
while(start!=NULL)
{
nnew=temp;
temp=temp->next;
free(nnew);
i=i-1;
start=temp;
}
printf("List is Empty");
}
void display()
{
if(i==0)
{
printf("List is Empty");
}
temp=start;
while(temp!=NULL)
{
printf("%d ",temp->info);
temp=temp->next;
}
}
\\TOPIC:MENUDRIVEN LINKED LIST IMPLEMENTATION
\\AUTHOR:DARSHIT VORA
#include < stdio.h >
#include < conio.h >
#include < alloc.h >
struct node
{
int info;
struct node *next;
}*start,*temp,*nnew;
int i=0,num;
void insertbeg();
void insertmid();
void insertend();
void deletebeg();
void deletemid();
void delend();
void delall();
void display();
void main()
{
int ch,ch1,ch2;
char ans;
do
{
clrscr();
printf("What do you want to do?");
printf("\n\n1.Insert");
printf("\n2.Delete");
printf("\n3.Display");
printf("\n4.Exit");
printf("\n\nEnter your choice");
scanf("%d",&ch);
switch(ch)
{
case 1:
{
printf("\n\n1.Insert at beginning");
printf("\n2.Insert in middle");
printf("\n3.Insert at end");
printf("\nEnter your choice");
scanf("%d",&ch1);
switch(ch1)
{
case 1:insertbeg();break;
case 2:insertmid();break;
case 3:insertend();break;
}
break;
}
case 2:
{
printf("\n\n1.Delete first element");
printf("\n2.Delete from middle");
printf("\n3.Delete last element");
printf("\n4.Delete entire list");
printf("\nEnter your choice");
scanf("%d",&ch2);
switch(ch2)
{
case 1:deletebeg();break;
case 2:deletemid();break;
case 3:delend();break;
case 4:delall();break;
}
break;
}
case 3:display();break;
case 4:exit();break;
}
printf("\nDo you want to continue?(y/n)");
flushall();
scanf("%c",&ans);
}while(ans=='y' || ans=='Y');
}
void insertbeg()
{
if(i==0)
{
temp=start;
printf("List is empty");
start=(struct node *) malloc(sizeof(struct node));
printf("\nEnter element ");
scanf("%d",&start->info);
start->next=NULL;
i=i+1;
temp=start;
}
else
{
temp=start;
temp=(struct node *) malloc(sizeof(struct node));
printf("Enter element ");
scanf("%d",&temp->info);
i=i+1;
temp->next=start;
start=temp;
}
}
void insertmid()
{
temp=start;
printf("Enter element after which you want to insert ");
scanf("%d",&num);
nnew=(struct node *) malloc(sizeof(struct node));
printf("Enter element to insert ");
scanf("%d",&nnew->info);
while(temp->next!=NULL)
{
if(temp->info==num)
{
nnew->next=temp->next;
temp->next=nnew;
break;
}
temp=temp->next;
}
i=i+1;
}
void insertend()
{
temp=start;
while(temp->next!=NULL)
{
temp=temp->next;
}
nnew=(struct node *) malloc(sizeof(struct node));
printf("Enter element ");
scanf("%d",&nnew->info);
temp->next=nnew;
nnew->next=NULL;
temp=start;
i=i+1;
}
void deletebeg()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
temp=start;
start=temp->next;
free(temp);
temp=start;
i=i-1;
}
void deletemid()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
printf("Enter element which you want to delete");
scanf("%d",&num);
temp=start;
nnew=start;
while(temp->next!=NULL)
{
if(temp->info==num)
{
nnew->next=temp->next;
break;
}
nnew=temp;
temp=temp->next;
}
free(temp);
temp=start;
i=i-1;
}
void delend()
{
if(i==0)
{
printf("List is Empty,cannot delete");
}
temp=start;
nnew=start;
while(temp->next!=NULL)
{
nnew=temp;
temp=temp->next;
}
free(temp);
nnew->next=NULL;
i=i-1;
}
void delall()
{
temp=start;
while(start!=NULL)
{
nnew=temp;
temp=temp->next;
free(nnew);
i=i-1;
start=temp;
}
printf("List is Empty");
}
void display()
{
if(i==0)
{
printf("List is Empty");
}
temp=start;
while(temp!=NULL)
{
printf("%d ",temp->info);
temp=temp->next;
}
}
Comments
Post a Comment