//Program for implementing Singly Circular Linked List.
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
//Structure definition
typedef struct cll
{
int data;
struct cll *next;
}node;
node *head,*t,*temp;
//Creating head node
node * create()
{
node *head;
head=(node *)malloc(sizeof(node));
head->data=-1;
head->next=head;
printf("\nHead node is created...\n");
return(head);
}
//Inserting nodes into circular linked list
void insert(node *head)
{
node *temp,*t;
int v;
temp=(node *)malloc(sizeof(node));
printf("\n\nEnter data for new node:");
scanf("%d",&v);
temp->data=v;
temp->next=head;
t=head;
while(t->next!=head)
{
t=t->next;
}
t->next=temp;
}
//Displaying the circular linked list
void display(node *head)
{
node *temp;
temp=head->next;
while(temp->next!=head)
{
printf("%d\t",temp->data);
temp=temp->next;
}
printf("%d\t",temp->data);
}
//Delition of node from circular linked list
void Delete(node *head)
{
int c;
node *temp,*t;
temp=head;
printf("\n\nEnter the data to be deleted from list:");
scanf("%d",&c);
while(temp->next!=head)
{
if(temp->next->data==c)
{
t=temp->next;
temp->next=t->next;
free(t);
}
else
{
temp=temp->next;
}
}
}
//Reversing the circular linked list
void reverse(node *head)
{
int a[10],i=0;
node *temp;
temp=head;
while(temp->next!=head)
{
a[i]=temp->next->data;
i++;
temp=temp->next;
}
a[i]=temp->data;
for(i=i-1;i>=0;i--)
{
printf("%d\t",a[i]);
}
}
//Reverting the circular linked list
void revert(node *head)
{
node *p,*q,*r;
p=head->next;
q=head;
while(p!=head)
{
r=q;
q=p;
p=p->next;
q->next=r;
}
head->next=q;
display(head);
}
//Main function
void main()
{
int ch;
node *head;
clrscr();
printf("*******Singly Circular Linked List*******");
do
{
printf("\n\nMenues:");
printf("\n\n1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit");
printf("\n\nEnter Youe Choice:");
scanf("%d",&ch);
switch(ch)
{
case 1: head=create();
break;
case 2: insert(head);
break;
case 3: Delete(head);
break;
case 4: reverse(head);
break;
case 5: revert(head);
break;
case 6: display(head);
break;
case 7: exit(0);
}
}while(ch<7);
getch();
}
/* Output of Program:
*******Singly Circular Linked List*******
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:1
Head node is created...
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:11
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:22
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:33
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:6
11 22 33
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:44
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:55
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:2
Enter data for new node:66
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:6
11 22 33 44 55 66
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:3
Enter the data to be deleted from list:33
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:6
11 22 44 55 66
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:4
66 55 44 22 11
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:5
66 55 44 22 11
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:6
66 55 44 22 11
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:3
Enter the data to be deleted from list:55
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:6
66 44 22 11
Menues:
1.Create 2.Insert 3.Delete 4.Reverse 5.Revert 6.Display 7.Exit
Enter Youe Choice:7 */
Pankaj Gaikar is a
professional blogger
from Pune, India who writes on Technology, Android,
Gadgets, social media and latest tech updates at
Punk Tech
,
Being Android
&
Shake The Tech
. Email me
HERE
0 comments :
Post a Comment