SINGLELINKEDLIST

  click to download  

#include
#include
#include
#include
void createlist();
void insert_begin();
void insert_end();
void insert_pos();
void delete_begin();
void delete_end();
void delete_pos();
void display();
int count();
struct list
{
int data;
struct list *next;
};
typedef struct list node;
node *start='\0';
node *tail='\0';
node *nptr;
 
 
 
void main()
{
 int choice;
 char ch;
 
 clrscr();
 
 do
 {
 printf("\n\n\n1.creat lsit\n2.insert at begin \n3.insert at end \n4.insert at position \n5.delete begin\n6.delete at end \n7.delete at position\n8.display\n9.exit\n\n\n");
 printf("\n------------------\n");
 printf("enter u r choice ");
 scanf("%d",&choice);
 switch(choice)
 {
 case 1:
createlist();
break;
 case 2:
insert_begin();
break;
 case 3:
insert_end();
break;
 case 4:
insert_pos();
break;
 case 5: delete_begin();
break;
 case 6:
delete_end();
break;
 case 7: delete_pos();
break;
 case 8: display();
break;
 case 9:exit(0);
 break;
 default:
printf("\nenter correct choice");
 }
 
 }
while(1);
 
getch();
}
 
 
void createlist()
{
int element;
printf("\nenter data ");
scanf("%d",&element);
nptr=(node *)malloc(sizeof(node));
if(start==NULL)
{
start=nptr;
nptr->data=element;
nptr->next=NULL;
tail=nptr;
}
else
{
nptr->data=element;
tail->next=nptr;
nptr->next=NULL;
tail=nptr;
}
display();
}
 
 
 
void display()
{
node *temp=start;
printf("\n");
while(temp!=NULL)
{
printf("%d -> ",temp->data)        ;
temp=temp->next;
}
}
 
void insert_begin()
{
int element;
nptr=(node *)malloc(sizeof(node));
printf("\nenter data ");
scanf("%d",&element);
nptr->data=element;
nptr->next=start;
start=nptr;
display();
}
void insert_end()
{
int element;
nptr=(node *)malloc(sizeof(node));
printf("\nenter data ");
scanf("%d",&element);
node *temp=start;
while(temp->next!=NULL)
{
temp=temp->next;
}
 
nptr->data=element;
temp->next=nptr;
nptr->next=NULL;
display();
 
}
void insert_pos()
{
int element,pos,i,count1;
nptr=(node *)malloc(sizeof(node));
printf("\nenter data ");
scanf("%d",&element);
printf("\n enter position to be inserted");
scanf("%d",&pos);
count1=count();
if(count1>=pos)
{
node *temp=start;
for(i=1;i
{
temp=temp->next;
}
 
nptr->data=element;
nptr->next=temp->next;
temp->next=nptr;
display();
}
else
{
printf("position long value u have only %d nodes",count1);
}
}
 
 
void delete_begin()
{
start=start->next;
display();
}
void delete_end()
{
node *temp=start,*prev;
while(temp->next!=NULL)
{
prev=temp;
temp=temp->next;
}
prev->next=NULL;
display();
}
 
void delete_pos()
{
node *temp,*pre;
int i,pos,count1;
printf("\nenter the postion do u want to delete");
scanf("%d",&pos);
count1=count();
if(count1>pos)
{
temp=start;
for(i=1;i
{
printf("position ");
temp=temp->next;
}
pre=(temp->next)->next;
temp->next=pre;
display();
}
else if(count1==pos)
{
delete_end();
}
else
printf("SUch node not find large value");
}
int count()
{
node *temp=start;
int i=0;
while(temp!=NULL)
{
temp=temp->next;
i=i+1;
}
return i;
}

 


Make a website for free Webnode