/* To delete alternative nodes in the linked list */
#include<stdio.h>
#include<conio.h>
void inst_end();
void del_beg();
void traverse();
struct node
{ int num;
struct node *next;
}*start=NULL;
typedef struct node node;
typedef struct node* nptr;
void main()
{ char choice;
while(1)
{
clrscr();
printf("-------LINKED LIST-------\n\n");
printf(" 1.Insertion\n");
printf(" 2.Deletion\n");
printf(" 3.Traverse\n");
printf(" 4.Exit\n\n");
printf(" Enter your choice: ");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{ case '1': inst_end();
break;
case '2': del_beg();
break;
case '3': traverse();
break;
case '4': exit(0);
default: printf("\n\ninvalid choice");
}
getch();
}
}
void inst_end()
{ int item;
nptr p;
p=(nptr)malloc(sizeof(node));
printf("\nenter the item: ");
scanf("%d",&item);
p->num=item;
if(start==NULL)
{ p->next=start;
start=p;
}
else
{ nptr q;
q=start;
while(q->next!=NULL)
{ q=q->next;
}
q->next=p;
p->next=NULL;
}
}
void del_beg()
{ if(start==NULL)
{ printf("\n\nlinked list is empty");
}
else
{ nptr p;
traverse();
while(start!=NULL)
{
p=start;
start=p->next->next;
printf("\ndeleted node: %d",p->num);
free(p);
}
}
}
void traverse()
{ if(start==NULL)
{ printf("\nempty");
}
else
{ nptr p;
p=start;
while(p!=NULL)
{ printf(" %d",p->num);
p=p->next;
}
}
}
Comments
Post a Comment