Hello,
To make linked list efficient, we make circular linked list......
- CIRCULAR LINKED LIST
written by techsayright
#include<stdio.h>
#include<stdlib.h>
struct node
{
int info;
struct node *next;
}*first=NULL,*temp=NULL,*newnode=NULL,*t=NULL;
struct node* createnode()
{
int x;
struct node*temp;
temp=(struct node*)malloc(sizeof(struct node));
printf("\nEnter value:");
scanf("%d",&x);
if(temp!=NULL)
{
temp->info=x;
temp->next=NULL;
return temp;
}
else
{
printf("\nMemory not allocated");
return 0;
}
}
void display()
{
if(first!=NULL)
{
for(temp=first;temp->next!=first;temp=temp->next)
printf("%d->",temp->info);
printf("%d->NULL",temp->info);
}
else
printf("\nLinked list is empty");
}
int count()
{
int i;
for(temp=first,i=0;temp->next!=first;i++,temp=temp->next);
i++;
return i;
}
void ias()
{
newnode=createnode();
if(first==NULL)
{
first=newnode;
first->next=first;
}
else
{
int p,i;
printf("Enter Position: ");
scanf("%d",&p);
if(p<=0 || p>count())
printf("Enter position in range");
else if(p==count())
{
for(temp=first,i=1;i<p;i++,temp=temp->next);
temp->next=newnode;
newnode->next=first;
}
else
{
for(temp=first,i=1;i<p;i++,temp=temp->next);
newnode->next=temp->next;
temp->next=newnode;
}
}
display();
}
void ial()
{
newnode=createnode();
if(first==NULL)
{
first=newnode;
first->next=newnode;
}
else
{
for(temp=first;temp->next!=first;temp=temp->next);
temp->next=newnode;
newnode->next=first;
}
display();
}
void daf()
{
if(first->next==first)
{
first=NULL;
}
else
{
for(temp=first;temp->next->next!=first;temp=temp->next);
temp->next->next=first->next;
t=first;
first=first->next;
free(t);
}
display();
}
void dal()
{
if(first==NULL)
printf("Empty List");
else if(first->next==first)
{
first=NULL;
}
else
{
for(temp=first;temp->next->next!=first;temp=temp->next);
t=temp->next;
temp->next=first;
free(t);
}
display();
}
void main()
{
int c;
do
{
printf("\nMENU\n1.Insert at Specified\n2.Insert at last\n3.Delete at first\n4.Delete last\n5.Display LL\n6.Exit\n\n");
scanf("%d",&c);
switch(c)
{
case 1:
ias();
break;
case 2:
ial();
break;
case 3:
daf();
break;
case 4:
dal();
break;
case 5:
display();
break;
case 6:
exit(0);
default :
printf("\nenter valid choice");
}
}whhile(c!=6);
getch();
}
happy coding✌
written by techsayright #include<stdio.h> #include<stdlib.h> struct node { int info; struct node *next; }*first=NULL,*temp=NULL,*newnode=NULL,*t=NULL; struct node* createnode() { int x; struct node*temp; temp=(struct node*)malloc(sizeof(struct node)); printf("\nEnter value:"); scanf("%d",&x); if(temp!=NULL) { temp->info=x; temp->next=NULL; return temp; } else { printf("\nMemory not allocated"); return 0; } } void display() { if(first!=NULL) { for(temp=first;temp->next!=first;temp=temp->next) printf("%d->",temp->info); printf("%d->NULL",temp->info); } else printf("\nLinked list is empty"); } int count() { int i; for(temp=first,i=0;temp->next!=first;i++,temp=temp->next); i++; return i; } void ias() { newnode=createnode(); if(first==NULL) { first=newnode; first->next=first; } else { int p,i; printf("Enter Position: "); scanf("%d",&p); if(p<=0 || p>count()) printf("Enter position in range"); else if(p==count()) { for(temp=first,i=1;i<p;i++,temp=temp->next); temp->next=newnode; newnode->next=first; } else { for(temp=first,i=1;i<p;i++,temp=temp->next); newnode->next=temp->next; temp->next=newnode; } } display(); } void ial() { newnode=createnode(); if(first==NULL) { first=newnode; first->next=newnode; } else { for(temp=first;temp->next!=first;temp=temp->next); temp->next=newnode; newnode->next=first; } display(); } void daf() { if(first->next==first) { first=NULL; } else { for(temp=first;temp->next->next!=first;temp=temp->next); temp->next->next=first->next; t=first; first=first->next; free(t); } display(); } void dal() { if(first==NULL) printf("Empty List"); else if(first->next==first) { first=NULL; } else { for(temp=first;temp->next->next!=first;temp=temp->next); t=temp->next; temp->next=first; free(t); } display(); } void main() { int c; do { printf("\nMENU\n1.Insert at Specified\n2.Insert at last\n3.Delete at first\n4.Delete last\n5.Display LL\n6.Exit\n\n"); scanf("%d",&c); switch(c) { case 1: ias(); break; case 2: ial(); break; case 3: daf(); break; case 4: dal(); break; case 5: display(); break; case 6: exit(0); default : printf("\nenter valid choice"); } }whhile(c!=6); getch(); } |
Post a Comment
Hii