Singly Linked List
Singly Linked List
#include<conio.h>
#include<stdio.h>
typedef struct node_n
{
int info;
node_n *next;
}node;
node *temp,*start,*q,*r;
void create();
void ins();
void ins_mid();
void ins_end();
void disp();
void del();
void del_mid();
void del_end();
main()
{
int ch;
while(1)
{
printf("\n\nEnter choice\n\n");
printf("\n1.Insert at beg");
printf("\n2.Insert at mid");
printf("\n3.Insert at end");
printf("\n4.Delete at beg");
printf("\n5.Delete at mid");
printf("\n6.Delete at end");
printf("\n7.Display");
printf("\n\nChoice: ");
scanf("%d",&ch);
switch(ch)
{
case 1: ins();
break;
case 2: ins_mid();
break;
case 3: ins_end();
break;
case 4: del();
break;
case 5: del_mid();
break;
case 6: del_end();
break;
case 7: disp();
break;
default: exit(0);
}
}
getch();
}
void create()
{
if(start==NULL)
{
temp=(node *)malloc(sizeof(node *));
printf("\nEnter value: ");
scanf("%d",&temp->info);
temp->next=NULL;
start=temp;
}
else
printf("\nInsert via beginning");
}
void ins()
{
if(start==NULL)
create();
else
{
temp=(node *)malloc(sizeof(node *));
printf("\nEnter value: ");
scanf("%d",&temp->info);
temp->next=start;
start=temp;
}
}
void ins_end()
{
if(start==NULL)
create();
else
{
temp=(node *)malloc(sizeof(node *));
printf("\nEnter value: ");
scanf("%d",&temp->info);
q=start;
while(q->next!=NULL)
q=q->next;
q->next=temp;
temp->next=NULL;
}
}
void ins_mid()
{ int num;
if(start==NULL)
create();
else
{
temp=(node *)malloc(sizeof(node *));
printf("\nEnter value: ");
scanf("%d",&temp->info);
printf("\nEnter value after which you wish to enter: ");
scanf("%d",&num);
q=start;
while(q->info!=num)
q=q->next;
temp->next=q->next;
q->next=temp;
}
}
void disp()
{
q=start;
while(q!=NULL)
{
printf("\n%d",q->info);
q=q->next;
}
}
void del()
{
if(start->next==NULL)
{
q=start;
free(q);
printf("\nEmpty");
}
else
{
q=start;
start=start->next;
free(q);
}
}
void del_end()
{
if(start->next==NULL)
{
q=start;
free(q);
printf("\nEmpty");
}
else
{
q=start;
while(q->next!=NULL)
{
r=q;
q=q->next;
}
r->next=NULL;
free(q);
}
void del_mid()
{
int num;
printf("\nEnter value to be deleted: ");
scanf("%d",&num);
q=start;
while(q->info!=num)
{
r=q;
q=q->next;
}
r->next=q->next;
free(q);
}
//////////////OUTPUT